Files
saltbo__agent-kanban/spec/resource-server.feature
realmroot[bot] 96fdd70d2c feat(api)!: redesign task resource operations (#265)
* feat(api)!: redesign task resource operations

Publish the complete resource-oriented OpenAPI contract, enforce scope-based authorization at the HTTP boundary, and replace lifecycle command routes with Task PATCH and nested Claim/Event resources.

Add server-side Task CAS, migration coverage, updated Agent Skills, and browser/API regression tests.

BREAKING CHANGE: remove the legacy task lifecycle endpoints and move bounded waits to /tasks/{taskId}/events.

* refactor(tasks)!: make claims create-only

Remove Task Claim retrieval and deletion routes, the release scope, live deletion logic, and release workflow guidance.

Keep historical release records readable for migration and audit compatibility.

BREAKING CHANGE: remove GET and DELETE /tasks/{taskId}/claims/{claimId} and the task:release scope.

* test(ci): align actor and projection contracts

Cover machine and service Task Action writes and update Agent detail fixtures to the canonical assignedTo query and paged lowerCamelCase response.

* fix(api): preserve merge patch fields and consume browser pagination

* test(ui): include terminal pagination in agent task fixture

---------

Co-authored-by: jarvis <jarvis@agents.realmroot.dev>
2026-09-05 02:40:42 +00:00

32 lines
1.8 KiB
Gherkin

Feature: Realmroot Resource Server
AK exposes Board and Task capabilities to Agents through Realmroot Toolbox.
@journey:resource-server/discovery @entrypoint:toolbox @proof:integration
Scenario: Publish protected-resource and OpenAPI discovery
When Realmroot discovers AK
Then AK publishes protected-resource metadata and its Toolbox OpenAPI document
@journey:resource-server/agent-skills @entrypoint:toolbox @proof:integration
Scenario: Publish installable Agent Skills
Given AK owns Agent-facing operating Skills
When Toolbox discovers Agent Skills at the AK Resource Server origin
Then AK publishes an Agent Skills Discovery version 0.2.0 index
And the index advertises every AK-owned Skill as a digest-verified archive
And each archive contains its Skill instructions and supporting files
@journey:resource-server/generic-operations @entrypoint:toolbox @proof:integration
Scenario: Use Toolbox generic resource operations
Given an authorized Realmroot actor
When the actor reads or writes an ordinary published Board, Task, Note, or Repository resource
Then Toolbox uses cursor collections, lowerCamelCase representations, and generic verb-first operations
And omitting API-Version selects the current v2 contract
And an explicit unsupported API-Version is rejected
And Board and Repository creation does not require an Idempotency-Key
And Task, Task Note, Agent, and Machine creation requires an RFC 8941 string Idempotency-Key
@journey:resource-server/workflow-commands @entrypoint:toolbox @proof:integration
Scenario: Publish only AK-specific resource-first commands
When Toolbox reads the AK OpenAPI document
Then wait has a stable resource-first command name
And ordinary CRUD does not create duplicate resource-first commands