Step ids: agent work that isn't an OpenSpec operation should be agent.*, not openspec.* #52
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The
openspec.prefix reads as "this is an OpenSpec command or skill", but four spine steps are Braid's own agent work with no OpenSpec counterpart:openspec.reconcile-tasks: checkstasks.mdagainst what the apply steps didopenspec.test.unit: runs the unit suiteopenspec.test.e2e: runs the e2e suiteopenspec.summarize: writes the summary for the commit and PRAll four are
kind: agentinsrc/osf/pipeline/nodes.py. A user who knows OpenSpec (propose → apply → archive, with sync on archive) sees these in the rail and reasonably assumes they're OpenSpec features they've never used.The naming came from #20 (
spine-step-names-and-landing), which definedopenspec.*as "OpenSpec work", including the agent's test and summary. This issue narrows that:openspec.*is only for operations that map to an OpenSpec CLI command or/opsxskill (new-change,propose.*,validate,apply[group],archive). Other agent work goes underagent.*, whichagent.merge-prandagent.archive-changealready use.Proposed renames
openspec.reconcile-tasksagent.reconcile-tasksopenspec.test.unitagent.test.unitopenspec.test.e2eagent.test.e2eopenspec.summarizeagent.summarizeOpen question
Apply the same test to
openspec.explore,openspec.review[lens]andopenspec.revise. Explore is an/opsxskill, but review and revise probably aren't OpenSpec operations either.Scope to check
The ids are referenced in
nodes.py,apply.py,scheduler.py,watchdog.py,prompts.py,conditions.py,.osf/pipeline.yaml,docs/guide.md, the specs (pipeline-steps,agent-delegation,pull-request-description, and the in-flightrun-resumedelta), the UI (steps.ts,status.ts, tests),ui/dev/fakeosfd.py, and the unit tests. Also check anything keyed by step id on disk, such as.osf/test/*.jsonpaths and saved runs. Runs are throwaway, so no migration is needed for in-flight ones.Shipped with #25 as the OpenSpec change
agent-step-names, archived in #84. Live on production sincec716e52.agent.*:agent.reconcile-tasks,agent.test.unit(and every generatedagent.test.<lane>, which the issue didn't list: the apply chain builds them from a template),agent.test.e2e,agent.summarize, and, from the open question,agent.reviewwith its lenses and.r2/.r3rounds.openspec.*: explore (an/opsxskill), new-change, propose.*, validate, revise (it rewrites the change's artifacts), apply and archive.nodes.py,apply.py, this repo's.osf/pipeline.yaml, the guide, the fake osfd and the tests. Comments quoting a measured run keep the id that run had.pipeline-stepsspec's naming rule now definesagentas Braid's own agent work that isn't an OpenSpec operation.Runs started before the deploy could not continue; a repository's own
.osf/pipeline.yamlthat names the old ids keeps running them under those names.PRs: #82 (the change), #84 (archive).