catalog-entry schema: adopt returns_result_set (pack-spec 4.20.0) #40
Labels
No labels
boundary:crosses
boundary:none
bug
devfu
documentation
duplicate
enhancement
epic
good first issue
help wanted
invalid
needs-info
needs-triage
question
ready-for-agent
ready-for-human
svd:fire
svd:go
svd:hold
svd:respec
svd:skip
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Stallari/plugins#40
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?
What to build
Adopt the pack-spec 4.20.0
returns_result_setkey in the catalog-entry schema, so plugin authors can declare it.returns_result_set— boolean, defaulttrue, on the per-toolgranularityblock. Declares whether the tool returns a result set at all.Why
scope_filtering: nonemeans two different things, and this repo's own schema description says both:Only the second is the failure mode DD-333 refuses. The first — no result set to scope — is a different claim the verdict table cannot express, so it refuses tools the contract was never written about.
Ratified in
stallari-harnessADR-0042 § Amendment 2026-08-21 (0f1aced2). Normative definition and the version bump land upstream in Groupthink-dev/stallari-pack-spec#20.Blocked by
Scope
Write set:
schemas/catalog-entry.schema.json— addreturns_result_setto thegranularityblock. The block isadditionalProperties: false, so this edit is what makes the key declarable at all.scripts/catalog-entry.schema.test.js— cases for present-true, present-false, and absent.scripts/build-catalog.js— only if it needs to carry the key through; check before assuming it does.Acceptance criteria
schemas/catalog-entry.schema.jsonacceptsreturns_result_setas a boolean on thegranularityblock, and it is not added to that block'srequiredarray.plugins/tools/validates unchanged — 59 files, 20 of which carry agranularityblock.returns_result_set: falsevalidates.scripts/catalog-entry.schema.test.jscovers 1–4, and the existing suite stays green.non_conformance_rationalederivation inbuild-catalog.jsis untouched. The new key is not a non-conformance signal — see #20 for why conflating the two would mislabel a shape fact as a diligence failure.Evidence
Measured at
da20179: 59 JSON files underplugins/tools/, 20 carrying agranularityblock, 19 declaring at least onescope_filtering: "none", 243 such declarations in total, 78 of them incloudflare-blade-mcp.json. All of them keep their current verdict — the default istrue.Refs Groupthink-dev/stallari-harness#1026, Groupthink-dev/stallari-harness#1027, Groupthink-dev/stallari-pack-spec#20.
Agent Brief
Category: enhancement · Summary: AJV catalog-entry schema adopts
returns_result_set.Premise verified:
schemas/catalog-entry.schema.json:124-155granularity block,additionalProperties: false(:127), four required dimensions (:128);returns_result_setabsent repo-wide. ≤3 files (catalog-entry.schema.json,catalog-entry.schema.test.js, optionallybuild-catalog.js). AC 6 pre-decidesnon_conformance_rationaleuntouched.Blocked by pack-spec#20 (unlanded). CONV-40 rule 2. Operator ruled
ready-for-agent2026-09-04, nosvd:gountil #20 merges.