catalog-entry schema: adopt returns_result_set (pack-spec 4.20.0) #40

Open
opened 2026-08-20 15:12:10 +00:00 by piersdd · 1 comment
piersdd commented 2026-08-20 15:12:10 +00:00 (Migrated from github.com)

What to build

Adopt the pack-spec 4.20.0 returns_result_set key in the catalog-entry schema, so plugin authors can declare it.

returns_result_set — boolean, default true, on the per-tool granularity block. Declares whether the tool returns a result set at all.

Why

scope_filtering: none means two different things, and this repo's own schema description says both:

"none: tool has no concept of scope (data is naturally unscoped, or the plugin punts entirely)."

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-harness ADR-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 — add returns_result_set to the granularity block. The block is additionalProperties: 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

  1. schemas/catalog-entry.schema.json accepts returns_result_set as a boolean on the granularity block, and it is not added to that block's required array.
  2. A catalog entry that omits the key still validates, and every existing plugin JSON in plugins/tools/ validates unchanged — 59 files, 20 of which carry a granularity block.
  3. A catalog entry declaring returns_result_set: false validates.
  4. A non-boolean value is rejected.
  5. scripts/catalog-entry.schema.test.js covers 1–4, and the existing suite stays green.
  6. The non_conformance_rationale derivation in build-catalog.js is 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 under plugins/tools/, 20 carrying a granularity block, 19 declaring at least one scope_filtering: "none", 243 such declarations in total, 78 of them in cloudflare-blade-mcp.json. All of them keep their current verdict — the default is true.

Refs Groupthink-dev/stallari-harness#1026, Groupthink-dev/stallari-harness#1027, Groupthink-dev/stallari-pack-spec#20.

## What to build Adopt the pack-spec 4.20.0 `returns_result_set` key in the catalog-entry schema, so plugin authors can declare it. `returns_result_set` — boolean, default `true`, on the per-tool `granularity` block. Declares whether the tool returns a result set at all. ## Why `scope_filtering: none` means two different things, and this repo's own schema description says both: > "none: tool has no concept of scope (data is naturally unscoped, or the plugin punts entirely)." 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-harness` ADR-0042 § Amendment 2026-08-21 (`0f1aced2`). Normative definition and the version bump land upstream in Groupthink-dev/stallari-pack-spec#20. ## Blocked by - Groupthink-dev/stallari-pack-spec#20 — pack-spec 4.20.0 defines the key. Adopting it here first would ship a schema ahead of its own specification. ## Scope Write set: - `schemas/catalog-entry.schema.json` — add `returns_result_set` to the `granularity` block. The block is `additionalProperties: 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 1. `schemas/catalog-entry.schema.json` accepts `returns_result_set` as a boolean on the `granularity` block, and it is **not** added to that block's `required` array. 2. A catalog entry that omits the key still validates, and every existing plugin JSON in `plugins/tools/` validates unchanged — 59 files, 20 of which carry a `granularity` block. 3. A catalog entry declaring `returns_result_set: false` validates. 4. A non-boolean value is rejected. 5. `scripts/catalog-entry.schema.test.js` covers 1–4, and the existing suite stays green. 6. The `non_conformance_rationale` derivation in `build-catalog.js` is 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 under `plugins/tools/`, 20 carrying a `granularity` block, 19 declaring at least one `scope_filtering: "none"`, 243 such declarations in total, 78 of them in `cloudflare-blade-mcp.json`. All of them keep their current verdict — the default is `true`. Refs Groupthink-dev/stallari-harness#1026, Groupthink-dev/stallari-harness#1027, Groupthink-dev/stallari-pack-spec#20.
piersdd commented 2026-09-04 00:37:31 +00:00 (Migrated from github.com)

This was generated by AI during triage.

Agent Brief

Category: enhancement · Summary: AJV catalog-entry schema adopts returns_result_set.
Premise verified: schemas/catalog-entry.schema.json:124-155 granularity block, additionalProperties: false (:127), four required dimensions (:128); returns_result_set absent repo-wide. ≤3 files (catalog-entry.schema.json, catalog-entry.schema.test.js, optionally build-catalog.js). AC 6 pre-decides non_conformance_rationale untouched.
Blocked by pack-spec#20 (unlanded). CONV-40 rule 2. Operator ruled ready-for-agent 2026-09-04, no svd:go until #20 merges.

> *This was generated by AI during triage.* ## Agent Brief **Category:** enhancement · **Summary:** AJV catalog-entry schema adopts `returns_result_set`. **Premise verified:** `schemas/catalog-entry.schema.json:124-155` granularity block, `additionalProperties: false` (`:127`), four required dimensions (`:128`); `returns_result_set` absent repo-wide. ≤3 files (`catalog-entry.schema.json`, `catalog-entry.schema.test.js`, optionally `build-catalog.js`). AC 6 pre-decides `non_conformance_rationale` untouched. **Blocked by pack-spec#20** (unlanded). CONV-40 rule 2. Operator ruled `ready-for-agent` 2026-09-04, **no `svd:go` until #20 merges**.
This discussion has been locked. Commenting is limited to contributors.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Stallari/plugins#40
No description provided.