Skip to content

Commit 3bc6be5

Browse files
authored
docs: mark mycroft.skill.handler.* as internal workshop->core sync (#436)
These are NOT spec topics — they are an internal ovos-workshop -> ovos-core synchronization signal (workshop reporting 'I started/ended/errored' running a handler). They exist only because skills run out-of-process from the orchestrator; if core manipulated skill objects directly this bus round-trip would not be needed. ovos-core consumes them as a private done-signal to emit the authoritative PIPELINE-1 §8 spec trio (ovos.intent.handler.*); the legacy names are permanently ovos-workshop event-wrapper signals and do not bridge to the spec namespace (spec-tools MIGRATION_MAP excludes the trio). Doc-only.
1 parent f48acd4 commit 3bc6be5

1 file changed

Lines changed: 25 additions & 2 deletions

File tree

ovos_workshop/skills/ovos.py

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1429,12 +1429,32 @@ def _on_event_start(self, message: Message, handler_info: str,
14291429
"""
14301430
Indicate that the skill handler is starting.
14311431
1432+
Emits ``mycroft.skill.handler.start`` (when ``handler_info`` is set).
1433+
1434+
.. note::
1435+
``mycroft.skill.handler.{start,complete,error}`` are an **internal
1436+
ovos-workshop → ovos-core synchronization signal** — workshop's way
1437+
of reporting "I started / ended / errored" running a handler. They
1438+
are **explicitly NOT part of any OVOS specification**; they are an
1439+
implementation detail that exists only because skills (ovos-workshop)
1440+
run in a **separate process** from the orchestrator (ovos-core). If
1441+
core manipulated skill objects directly, in-process, this bus
1442+
round-trip would not be needed.
1443+
1444+
ovos-core consumes these as a private *done-signal* to emit the
1445+
authoritative PIPELINE-1 §8 handler-lifecycle trio
1446+
(``ovos.intent.handler.{start,complete,error}``). The legacy
1447+
``mycroft.skill.handler.*`` names are permanently ovos-workshop
1448+
event-wrapper signals and do **not** bridge to the spec namespace
1449+
(ovos-spec-tools MIGRATION_MAP deliberately excludes the trio).
1450+
14321451
activation (bool, optional): activate skill if True,
14331452
deactivate if False,
14341453
do nothing if None
14351454
"""
14361455
if handler_info:
1437-
# Indicate that the skill handler is starting if requested
1456+
# internal workshop->core done-signal (see docstring); NOT a spec
1457+
# topic -> emits mycroft.skill.handler.start
14381458
msg_type = handler_info + '.start'
14391459
message.context["skill_id"] = self.skill_id
14401460
self.bus.emit(message.forward(msg_type, skill_data))
@@ -1446,6 +1466,8 @@ def _on_event_end(self, message: Message, handler_info: str,
14461466
completed.
14471467
"""
14481468
if handler_info:
1469+
# internal workshop->core done-signal (see _on_event_start); NOT a
1470+
# spec topic -> emits mycroft.skill.handler.complete
14491471
msg_type = handler_info + '.complete'
14501472
message.context["skill_id"] = self.skill_id
14511473
self.bus.emit(message.forward(msg_type, skill_data))
@@ -1473,7 +1495,8 @@ def _on_event_error(self, error: str, message: Message, handler_info: str,
14731495
# append exception information in message
14741496
skill_data['exception'] = repr(error)
14751497
if handler_info:
1476-
# Indicate that the skill handler errored
1498+
# internal workshop->core done-signal (see _on_event_start); NOT a
1499+
# spec topic -> emits mycroft.skill.handler.error
14771500
msg_type = handler_info + '.error'
14781501
message = message or Message("")
14791502
message.context["skill_id"] = self.skill_id

0 commit comments

Comments
 (0)