Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion plugin-evals/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Publishing evaluation fixtures

`publishing-cases.json` is the draft cross-skill review suite for a future OpenAI **With MCP** submission. It contains at least five positive cases with expected result shapes, plus three negative or refusal-boundary cases with explicit reasons the plugin must not complete the requested action. `tool-annotation-justifications.json` records the exact three required hint values and a non-empty justification for every hint on all 46 expected MCP tools. Repository policy tests check its exact inventory and shape, and the live MCP regression test checks its values against `tools/list`.
`publishing-cases.json` is the draft cross-skill review suite for a future OpenAI **With MCP** submission. It contains at least five positive cases with expected result shapes, plus three negative or refusal-boundary cases with explicit reasons the plugin must not complete the requested action. `tool-annotation-justifications.json` records the exact three required hint values and a non-empty justification for every hint on all 46 expected MCP tools. Repository policy tests check its exact inventory and shape, and the live MCP regression test checks its values against `tools/list`. That counted 46-tool inventory is the public package's; the hosted server's additional hosted-only Capture scan tools are documented separately and stay outside this packet.

The suite remains blocked until Pascal confirms an authorized verified OpenAI publisher identity, completes portal-token domain verification, passes Scan Tools against the production hosted endpoint, provisions OAuth-compatible reviewer access, and names disposable fixtures that reviewers can use without internal context. Each standalone skill also bundles:

Expand Down
2 changes: 1 addition & 1 deletion plugin-evals/publishing-cases.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"evidence": [
"The machine-readable packet records exact values and non-empty per-hint justifications for all 46 expected tools.",
"The repository policy validator rejects missing, unexpected, duplicate, reordered, or wrongly classified tools and missing, blank, or extra hint justifications.",
"The live MCP tools/list regression test requires the packet's exact inventory and annotation values to match the registered server tools.",
"The live MCP tools/list regression test requires the packet's exact inventory and annotation values to match the registered @pascal-app/mcp package tools; the live hosted tools/list exposes those 46 reviewed package tools plus three hosted-only capture tools, list_captures, get_capture, and open_capture_as_project, which are outside this packet by design.",
"The complete @pascal-app/mcp suite passed 361 tests with 1684 assertions, and the MCP dependency build passed."
],
"limitations": "This is local submission preparation only. It does not establish production hosted-MCP behavior, a portal Scan Tools run or approval, domain verification, verified publisher identity, reviewer access, submission, review, publication, or listing."
Expand Down
2 changes: 1 addition & 1 deletion skills/VALIDATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Public `quality` and `cli-smoke` CI passed before merge. The new positive and ne

## OpenAI MCP tool-annotation candidate

The unreleased submission-preparation candidate based on public `main` at `f107edabb68743290de4ba50b701c2e04869cabb` explicitly classifies every registered MCP tool with `readOnlyHint`, `destructiveHint`, and `openWorldHint`. `plugin-evals/tool-annotation-justifications.json` records the exact three values and a non-empty justification for every hint on all 46 tools. The independent repository policy validator requires the exact inventory, values, keys, ordering, and non-empty justifications; the live `tools/list` regression test requires the packet to match the registered server. The classifications distinguish 17 closed-world reads, two open-world image-analysis reads, 14 additive closed-world mutations, 12 destructive closed-world operations, and one destructive open-world photo-to-scene operation.
The unreleased submission-preparation candidate based on public `main` at `f107edabb68743290de4ba50b701c2e04869cabb` explicitly classifies every registered MCP tool with `readOnlyHint`, `destructiveHint`, and `openWorldHint`. `plugin-evals/tool-annotation-justifications.json` records the exact three values and a non-empty justification for every hint on all 46 tools. The independent repository policy validator requires the exact inventory, values, keys, ordering, and non-empty justifications; the live `tools/list` regression test requires the packet to match the registered server. The classifications distinguish 17 closed-world reads, two open-world image-analysis reads, 14 additive closed-world mutations, 12 destructive closed-world operations, and one destructive open-world photo-to-scene operation. This counted 46-tool inventory is the public package's; the hosted server additionally registers hosted-only Capture scan tools that are documented separately and stay outside this packet.

The four focused package-policy files passed 38 tests with 60 assertions. The live annotation regression passed with 324 assertions, and the complete `packages/mcp` suite passed 361 tests with 1,684 assertions. The MCP dependency build, repository check across 2,100 files, package validator, and Claude Code 2.1.267 strict plugin validation also passed. These local checks establish source-level inventory, value, and justification completeness for the tested candidate. They do not establish behavior of the production hosted endpoint, a portal Scan Tools run or approval, domain verification, verified publisher identity, reviewer access, submission, review, publication, listing, or release. The publishing suite records each external prerequisite and remains blocked until they pass.

Expand Down
1 change: 1 addition & 0 deletions skills/pascal-3d/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ If the task is a furniture or clearance assessment and the `furniture-fit` skill
### Read or create the right scene

- Existing project: call `list_scenes` when available, select by exact ID or unambiguous name, then call `load_scene`.
- Room scan on the hosted server only: reach it with `list_captures`, then `get_capture`, then `open_capture_as_project` for a `processed` scan you have edit access to on the scan's own project; these tools do not exist on the local CLI, so never call them there.
- New persistent project: call `create_project` before modeling.
- Already active scene: call `get_project_status` and `get_scene` before editing.
- If persistence tools are absent, explain that the connected server is an in-memory/custom runtime and do not promise a durable handoff.
Expand Down
12 changes: 12 additions & 0 deletions skills/pascal-3d/references/tool-workflows.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,17 @@ Inspect the server's advertised tools because hosted and local releases may diff

`get_scene` returns the full graph and is useful when a compact summary omits a field needed for a calculation, such as an item's scale.

## Open a room scan (hosted only)

These three tools exist only on the hosted Pascal server. A local CLI connection does not advertise them, so inspect the advertised tools before assuming this path is available.

1. `list_captures`, optionally narrowed by `projectId`, `status`, or `limit`.
2. `get_capture` with the `captureId`, adding `includeScanMetrics` when the answer needs scan quality numbers.
3. `open_capture_as_project` once the capture reports `processed`, to bind the owning project's persisted draft into the session.
4. Continue with the project workflows above.

All three require edit access on the scan's own project; view access, including a public project owned by someone else, is refused as not found. The first two are read-only. `open_capture_as_project` creates nothing and is idempotent, but it carries the same non-read-only annotation as `get_project_status` because it changes the project the session is bound to.

## Create an editable project

1. `create_project`
Expand Down Expand Up @@ -50,5 +61,6 @@ Do not mutate just to make a report unless the user authorizes a temporary or sa
- `place_item` uses catalog dimensions. If a catalog item is unavailable, its placeholder dimensions are not evidence for a real product.
- `check_collisions` checks rotation-aware scaled item footprints using plan AABBs. Pass `minimumClearance` explicitly: zero reports overlap; a positive measurement also reports pairs closer than that gap. Inspect `status`, `checkedItems`, `skippedItems`, and `unsupportedChecks` before drawing a conclusion.
- `verify_scene` adds practical issues, including item separation and rectangular door-access keep-outs. It does not model a door-leaf swing arc or a delivery route.
- No tool starts a room scan or clones a scan into a new project. Scans are created only by the Pascal iOS app, and `open_capture_as_project` opens the scan's existing owning project.

When a requested deliverable is unsupported, return `partial` or `failed` with the tool status and the next supported action. Do not substitute an invented file, URL, or capability.
Loading