Skip to content

Fail closed on missing furniture-fit inputs - #791

Merged
Aymericr merged 1 commit into
mainfrom
feat/furniture-fit-missing-input-early-exit
Sep 9, 2026
Merged

Aymericr merged 1 commit into
mainfrom
feat/furniture-fit-missing-input-early-exit

Conversation

@Aymericr

@Aymericr Aymericr commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

The furniture-fit skill could answer a decisive missing measurement with speculative conditional thresholds. This release makes the input gate fail closed: it preserves supplied values, requests only the blocking input, permits a minimal read-only scene lookup only when that lookup can resolve the value from measured evidence, and blocks assessment or mutation until the input is resolved.

It also releases the skill as furniture-fit 0.1.2 in plugin bundle 0.1.3 and corrects the hosted Claude/Codex setup examples. Claude setup now guards an existing PASCAL_API_KEY instead of assigning a placeholder; Codex guidance explicitly requires replacing the placeholder and documents that Codex stores the environment-variable name.

Validation:

  • bun scripts/validate-skills.ts
  • claude plugin validate . --strict
  • git diff --check origin/main...HEAD
  • Prospectively frozen native Claude Fable gate against exact furniture-fit/SKILL.md SHA-256 c5283ef5d593f7c8beb66d20d8131966305b24b27104398f42343498138a1bd4: 3/3 deterministic cases and 12/12 semantic criteria passed with no task retries. Both missing-input cases made zero Pascal MCP calls; the complete-input case used the real read-only candidate collision path and preserved graph hash, version, and export bytes.
  • Separate semantic judge receipt: first-party Fable 5.1 with tools: [], mcpServers: [], plugins: [], and zero tool calls.
  • Separate literal setup checks covered unset, empty, and existing Claude keys across two working directories, plus Codex environment-variable-name storage. These setup docs changed after the skill-body gate, so the native result is not presented as a blanket whole-bundle native pass.

The earlier invalid ambient-Codex judge receipt and the failed D02/submission cohorts remain unchanged. This PR does not claim automatic-routing promotion, official marketplace listing, external adoption, production hosted-session continuity, or support for height, door-swing, delivery-route, or detailed mesh checks.


Note

Low Risk
Changes are skill instructions, evals, version manifests, and setup documentation—no application runtime or auth server code.

Overview
furniture-fit now fails closed on decisive missing inputs: when width, depth, scale, pose, clearance, or similar is unresolved, agents must return insufficient evidence, keep supplied facts, ask only for the blocking measurement, and not emit conditional max-fit sizes, hypothetical clearances, or run candidate/collision/placement/save tools. A minimal read-only scene lookup is allowed only to pull a value from measured evidence; candidate-call guidance is aligned with that gate.

The release ships as plugin bundle 0.1.3 / furniture-fit 0.1.2 (manifests, validate-skills.ts, VALIDATION.md), adds eval #8 for the missing-depth case, and tightens the insufficient-evidence example.

Hosted setup docs (furniture-fit and pascal-3d references/setup.md) now document safer PASCAL_API_KEY handling: Claude uses a shell guard and --scope user with an expanded Bearer header; Codex notes placeholder replacement and that only the env var name is stored.

Reviewed by Cursor Bugbot for commit 6e6e5e8. Bugbot is set up for automated code reviews on this repo. Configure here.

@pascal

pascal Bot commented Sep 9, 2026

Copy link
Copy Markdown

I hit an error while handling your request (Model unavailable on AI Gateway free tier: Free tier users do not have access to this model. Upgrade to paid credits at https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%3Fmodal%3Dtop-up for unrestricted…).

Please try again, rephrase, or reach out if it keeps failing.

Error id: a8f7c6fc-d82e-4e8c-abfa-ac8778f65b97

@Aymericr
Aymericr merged commit 029bfda into main Sep 9, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant