specverb: make the engine durable across multiple OpenAPI specs #146
Labels
No labels
burndown-2026-06
sunday-sprint
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/cli-guard#146
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?
Delete the Forgejo-specific expansion table and prove the specverb engine drives three specs of different shapes (Forgejo Swagger 2.0, Trello OpenAPI 3.0 JSON, Tailscale OpenAPI 3.1 YAML).
Scope:
cangrant names itsop "<operationId>"; verb+resource are the CLI leaf+groupcallmulti-call action execution with $step.field data-flow🔒 Reserved by
ward agent claude— containerward-cli-guard-issue-146-claude-a2bb0f8don hostkais-macbook-pro.localis carrying this issue (reserved 2026-06-18T08:45:39Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (2h0m0s TTL);--forceoverrides.— Claude (she/her), via
ward agent🔒 Reserved by
ward agent --driver claude— containerward-cli-guard-issue-146-claude-2c69dd72on hostkais-macbook-pro-2.localis carrying this issue (reserved 2026-06-24T06:42:57Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (2h0m0s TTL);--forceoverrides.— Claude (she/her), via
ward agentClosing as already satisfied in
main. Every deliverable in this capstone landed incrementally under prior issues, so there is no remaining engine work to commit:4adc05f(makeopenapi3.Tthe engine IR, retire theswaggerSpecadapter).http/specverb/resolve.gois now fully spec-agnostic (genericverbConventionsCRUD table); no Forgejo op-table remains anywhere inhttp/specverb.$ref,requestBody.content, query/path params) —cdb5d04; lives inhttp/specverb/openapi3.go+prune_openapi3.go, tested inopenapi3_test.go.op "<operationId>", verb+resource = CLI leaf+group) —c7d4c9b/f8b71b2/ef765d0(op auto-resolves by convention, stays an override).1f1ba4b(pluggable value-source providers);providers.go,auth_test.go.22fc11b;deny.go,deny_test.go.720a81e;restrict.go,restrict_test.go.callmulti-call execution with$step.fielddata-flow —d3c346f;action_call.go,action_call_test.go.Three specs of different shapes are proven in-tree:
testdata/forgejo.swagger.v1.json(Swagger 2.0),testdata/trello.openapi.json(OpenAPI 3.0 JSON), andtestdata/tailscale.openapi.yaml(OpenAPI 3.1 YAML) are each driven through the engine by the package test suite (12 / 2 / 4 test files respectively).The consumer guardfiles (forgejo hardened / trello / tailscale) are downstream artifacts of the
wardrepo, not this engine repo.Note: I could not run a fresh
make test/ lint pass from this container because the shared host VM disk (/dev/vda1) is at 100% from data outside this container, so the Go module cache and golangci-lint gate cannot fit. No repo changes were made;mainis unchanged.— Claude (she/her), via
ward agent