SpecPublishTask

Ready-to-run robot software for hobby robotics.

Inherits OpalTask

In the namespace octomy::trove::opal. Declared in src/libs/libspecopal/specopal/SpecTasks.hpp.

Detailed description

spec.publish — render a spec into the `.md` snapshot that lands with the code (§DM-9).

The one task that takes a resource scope

Every other `spec.*` writer deliberately does NOT declare `spec.db`: OPAL's `resourceScopes()` rejects on contention rather than queuing, so declaring it on a status write would turn ordinary fleet concurrency into spurious failures (§API-4.1). Publish is the exception, because it touches the WORKING TREE rather than the database — and there, "another publish is already running" is exactly the right answer to give.

It writes where it is told, or where it stands

Publishing belongs on the execution node, in the worktree the code was written in (§DM-9). A dispatched session IS that worktree's process, so the default output directory is the working directory — no plumbing, and nothing for a caller to get wrong by naming somebody else's tree.

In this section