Skip to content

feat(data_engineering): add telemetry_normalizer skill for sensor harmonization (#47) - #423

Merged
rosspeili merged 3 commits into
ARPAHLS:mainfrom
rin-katsuragi:feat/issue-47-telemetry-normalizer
Oct 12, 2026
Merged

rosspeili merged 3 commits into
ARPAHLS:mainfrom
rin-katsuragi:feat/issue-47-telemetry-normalizer

Conversation

@rin-katsuragi

Copy link
Copy Markdown
Contributor

Description

Provides deterministic, physical-bounds-checked normalization of heterogeneous time-series telemetry streams across robotics (IMU kinematics), environmental monitoring (particulate and ambient air quality), energy storage (EV fleet battery state), and building automation (HVAC). The engine enforces SI base and derived unit conversion, timestamp ISO 8601 UTC canonicalization, sensor fault anomaly flagging (stuck ADC values, frozen readings), physical plausibility bounds verification, and optional semantic export to W3C SOSA / SSN Linked Data graph triples.

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 Feature — skillware/core/ loader, env, adapters
  • CLI — skillware/cli.py, docs/usage/cli.md
  • Examples — examples/*.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 #47)
  • Scope matches the issue — no unrelated refactors
  • Contribution complies with Legal notice and code ownership (original work, MIT license grant, no malicious logic)
  • python -m black --check ., flake8, and ruff check . 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
  • Ran pytest tests/test_skill_docs.py when catalog Usage Examples or provider snippets changed

New or updated skill

Bundle and metadata

  • Skill at skills/data_engineering/telemetry_normalizer/
  • manifest.yaml: name (full ID), version, description, parameters, constitution, real issuer
  • Optional: short_description, issuer.github, issuer.org, requirements, env_vars

Effect, Directive, Assurance

  • Deterministic skill.py (Effect, no ad-hoc LLM-generated execution paths)
  • instructions.md (Directive) explains when and how to use the skill
  • card.json (Presentation) issuer matches manifest when present
  • test_skill.py (Assurance) covers execution and schema expectations
  • SkillLoader.load_skill("data_engineering/telemetry_normalizer") succeeds

Documentation and catalog

  • docs/skills/data_engineering/telemetry_normalizer.md, category hub row, row in docs/skills/README.md, and docs/sitemap.md
  • Usage Examples for Gemini, Claude, OpenAI, DeepSeek, Ollama per skill usage template

Constitution and safety (skills only)

  • Read-only data engineering pipeline operating strictly on memory-buffered telemetry payloads.
  • No network requests, hardware sockets, external file execution, or subprocess execution.
  • Deterministic bounds verification and sensor fault detection fail-safe: out-of-bounds observations are tagged with quality metrics without throwing uncaught exceptions, leaving downstream agent reasoning intact.

Related Issues

Closes #47

…monization (ARPAHLS#47)

Implement data_engineering/telemetry_normalizer resolving ARPAHLS#47.

- Ingest heterogeneous telemetry arrays and normalize to canonical SI units
- Universal UTC ISO-8601 timestamp parser supporting multiple epoch granularities
- Physical bounds guard and sensor fault tagging (NaN, inf, sentinels)
- Bundled profiles: robotics_kinematics_imu, environmental_air_quality, energy_battery_fleet, smart_building_hvac
- Support actions: normalize, list_profiles, validate
- W3C SOSA/SSN JSON-LD export format support
- Offline unit test suite, card UI schema fixture, documentation catalog, and multi-domain stress harness

@rosspeili rosspeili 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.

@rin-katsuragi this is exceptionally well compiled and your follow up commits instantly addressed common pre-merge conflicts naturally. LGTM. Merging as is <3

@rosspeili
rosspeili merged commit f9612e2 into ARPAHLS:main Oct 12, 2026
7 checks passed
@rin-katsuragi
rin-katsuragi deleted the feat/issue-47-telemetry-normalizer branch October 12, 2026 09:11
@rin-katsuragi

Copy link
Copy Markdown
Contributor Author

Wow @rosspeili thank you for accepting this PR, and I did the best to follow to project standards and contributing guide! I will hope this skill will help IoT and robotics users!

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.

[New Skill]: Semantic IoT Telemetry Bridge

2 participants