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
14 changes: 10 additions & 4 deletions packages/codex-plugin/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "judgmentkit",
"version": "0.1.0",
"description": "AI UI review and handoff guidance that helps Codex preserve design intent, catch workflow mismatches, and enforce hard design-system acceptance gates.",
"description": "AI UI review, handoff guidance, and slide deck creation triggers that help Codex preserve design intent, catch workflow mismatches, and enforce hard design-system acceptance gates.",
"author": {
"name": "JudgmentKit",
"url": "https://judgmentkit.ai"
Expand All @@ -13,14 +13,18 @@
"design-handoff",
"design-system",
"figma",
"presentation",
"slide-deck",
"pptx",
"powerpoint",
"workflow-fit",
"ui-critique"
],
"skills": "./skills/",
"interface": {
"displayName": "JudgmentKit",
"shortDescription": "AI UI review with hard design-system gates",
"longDescription": "JudgmentKit helps product designers and design teams review AI-generated UI before screens are planned, built, or accepted. It turns product briefs, Figma or Adobe handoffs, design-system guidance, and generated screens into clear decisions, states, terminology, workflow checks, implementation evidence, and hard design-system acceptance gates. If generated UI does not pass the active design system, it is a failed candidate, not an artifact. The hosted endpoint is for allowed or sanitized work; use a local or self-hosted JudgmentKit path for confidential briefs, unreleased designs, proprietary design-system details, source code, or customer data.",
"shortDescription": "AI UI review, slide decks, and hard design-system gates",
"longDescription": "JudgmentKit helps product designers and design teams review AI-generated UI before screens are planned, built, or accepted. It turns product briefs, Figma or Adobe handoffs, design-system guidance, and generated screens into clear decisions, states, terminology, workflow checks, implementation evidence, and hard design-system acceptance gates. It is also the discoverable route for JudgmentKit slide deck, presentation, PowerPoint, and PPTX requests from allowed briefs, review packets, handoffs, or implementation evidence once the MCP deck creation tool is available. If generated UI does not pass the active design system, it is a failed candidate, not an artifact. The hosted endpoint is for allowed or sanitized work; use a local or self-hosted JudgmentKit path for confidential briefs, unreleased designs, proprietary design-system details, source code, or customer data.",
"developerName": "JudgmentKit",
"category": "Productivity",
"capabilities": [
Expand All @@ -32,7 +36,9 @@
"defaultPrompt": [
"Turn this product brief into UI decisions and review criteria.",
"Review this sanitized Figma or generated screen for workflow fit and disclosure issues.",
"Create hard design-system acceptance criteria for this interface."
"Create hard design-system acceptance criteria for this interface.",
"Create a JudgmentKit slide deck from this product brief.",
"Turn this workflow review into a presentation handoff."
]
},
"mcpServers": "./.mcp.json"
Expand Down
12 changes: 12 additions & 0 deletions packages/codex-plugin/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,18 @@ Current committed plugin version: `0.1.0`.
- `skills/judgmentkit-hosted-mcp/agents/openai.yaml`: OpenAI agent metadata for the skill.
- `CHANGELOG.md`: package-local release history.

## Discoverable Triggers

Use the hosted skill when a user or agent asks JudgmentKit to review UI activity fit, set design-system acceptance gates, prepare handoff criteria, or create a slide deck, presentation, PowerPoint, or PPTX from an allowed brief, review packet, handoff, or implementation evidence.

Visible trigger examples:

- "Use JudgmentKit to create a slide deck from this product brief."
- "Make a JudgmentKit presentation from this workflow review."
- "Turn this handoff into a PPTX deck."

If the active JudgmentKit MCP server does not expose a deck creation tool yet, report that the current endpoint cannot create the deck and collect the deck audience, purpose, source material, confidentiality boundary, and desired output format without fabricating an MCP result.

## Hosted Privacy Boundary

The included MCP configuration points to `https://judgmentkit.ai/mcp`. Hosted requests leave the local environment and are appropriate only for allowed or sanitized work.
Expand Down
31 changes: 30 additions & 1 deletion packages/codex-plugin/skills/judgmentkit-hosted-mcp/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: judgmentkit-hosted-mcp
description: Use JudgmentKit when the user explicitly asks or the project opts in to clarify what a UI must support, choose the right surface type, review workflow fit, set disclosure boundaries, enforce design-system acceptance gates, or prepare design-system handoff criteria before product UI is planned, generated, reviewed, or accepted.
description: Use JudgmentKit when the user explicitly asks or the project opts in to clarify what a UI must support, choose the right surface type, review workflow fit, set disclosure boundaries, enforce design-system acceptance gates, prepare design-system handoff criteria before product UI is planned, generated, reviewed, or accepted, or create a JudgmentKit slide deck, presentation, PowerPoint, or PPTX from allowed source material once the deck creation tool is available.
---

# JudgmentKit Hosted MCP
Expand All @@ -9,8 +9,26 @@ description: Use JudgmentKit when the user explicitly asks or the project opts i

Use this skill to help product designers working with Codex clarify the job a product UI must do before screens, components, or styling are chosen. Start from a brief, Figma or Adobe handoff, design mockup, generated screen, or local source context and make the design decision set explicit: participants, outcomes, workflow, surface type, domain language, disclosure boundaries, required states, and evidence needed for handoff or acceptance.

Use this skill for JudgmentKit slide deck requests when the user asks to create, draft, generate, export, or turn source material into a deck, presentation, PowerPoint, or PPTX. Deck requests should start from the activity and audience, then use the deck creation MCP tool when the active endpoint exposes one.

MCP and server details belong only in setup, diagnostics, audit, or integration work. Keep them out of product-facing UI and copy.

## Slide Deck Creation

Trigger this skill when the user asks JudgmentKit to create, draft, generate, export, or turn source material into a slide deck, presentation, PowerPoint, or PPTX.

Before calling a deck creation MCP tool, establish:

- audience and decision the deck should support
- source material and evidence authority
- desired deck form, such as narrative, handoff, review, pitch, or status update
- required output format and delivery path
- confidentiality boundary for hosted processing

When the active JudgmentKit MCP server exposes a deck creation tool, call it with the reviewed activity context and allowed source material. Keep primary slide copy in domain language and do not expose prompts, schemas, resource ids, MCP server names, tool names, traces, or model configuration in slide content.

If no deck creation tool is listed by the active endpoint, state that the current JudgmentKit endpoint cannot create the deck yet. Do not fabricate a JudgmentKit packet, deck, or MCP result. Continue only with a deterministic outline or requirements summary if the user wants that fallback.

## Design-System Acceptance Gate

Treat the active design system as an existential gate for generated UI:
Expand All @@ -37,6 +55,7 @@ Before calling MCP tools, check the active user, project, and AGENTS instruction
- Use JudgmentKit only when the user explicitly asks for it or the current project instructions opt into JudgmentKit for the task.
- Do not send confidential briefs, unreleased designs, proprietary design-system details, source code, customer data, or internal roadmap context to the hosted endpoint unless workspace policy allows it.
- When allowed, use JudgmentKit for UI generation, UI critique, implementation planning, workflow review, handoff review, and generated UI acceptance.
- When the user asks for a JudgmentKit deck, presentation, PowerPoint, or PPTX and the active endpoint exposes deck creation, use JudgmentKit for deck creation from allowed source material.
- Do not use JudgmentKit for unrelated backend work, factual answers, docs-only edits, or general code review unless the task depends on UI activity fit.
- If the activity is setup, debugging, auditing, or integration work, implementation details may be visible. Otherwise, keep prompts, schemas, resource ids, MCP servers, tool names, traces, and model configuration out of product UI.
- When ranking findings, use `High`, `Medium`, and `Low` labels.
Expand All @@ -59,6 +78,16 @@ Before calling MCP tools, check the active user, project, and AGENTS instruction

Use the MCP response `structuredContent` for follow-up tool calls and implementation decisions. Use `content[0].text` as the concise human-facing planning card.

## Deck Workflow

For slide deck requests:

1. Confirm the deck audience, purpose, source material, confidentiality boundary, and target format from the brief or local context.
2. Use the activity contract to keep the deck focused on the participant decision and outcome, not implementation machinery.
3. Call the deck creation MCP tool when it is available from the active endpoint.
4. Treat returned deck guidance or artifacts as JudgmentKit output only when they came from the MCP tool.
5. Review slide copy for disclosure discipline before handoff: primary slides should use domain language, while prompts, schemas, resource ids, MCP details, traces, and model configuration stay out of the deck unless the deck is explicitly for setup, debugging, auditing, or integration.

## Activity Contract

Before suggesting screens, components, or styling, establish:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
interface:
display_name: "JudgmentKit Hosted MCP"
short_description: "UI workflow review and hard design-system gates"
default_prompt: "Use $judgmentkit-hosted-mcp to review this UI brief for workflow fit, surface choice, disclosure boundaries, and the hard design-system acceptance gate. If the generated UI does not pass the active design system, treat it as a failed candidate and send it back through JudgmentKit for hard repair constraints."
short_description: "UI workflow review, slide deck creation, and hard design-system gates"
default_prompt: "Use $judgmentkit-hosted-mcp to review this UI brief for workflow fit, surface choice, disclosure boundaries, and the hard design-system acceptance gate, or to create a JudgmentKit slide deck, presentation, PowerPoint, or PPTX from allowed source material when the deck creation tool is available. If generated UI does not pass the active design system, treat it as a failed candidate and send it back through JudgmentKit for hard repair constraints. If the active JudgmentKit endpoint does not expose deck creation, say so and capture deck requirements without fabricating results."
dependencies:
tools:
- type: "mcp"
Expand Down
1 change: 1 addition & 0 deletions scripts/install-mcp.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ export const JUDGMENTKIT_MCP_TOOL_NAMES = [
"create_ui_generation_handoff",
"create_frontend_generation_context",
"create_frontend_implementation_skill_context",
"create_slide_deck",
"list_icon_catalog",
"search_icon_catalog",
"get_icon_svg",
Expand Down
26 changes: 26 additions & 0 deletions scripts/mcp-smoke.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,36 @@ try {
"create_ui_generation_handoff",
"create_frontend_generation_context",
"create_frontend_implementation_skill_context",
"create_slide_deck",
"list_icon_catalog",
"search_icon_catalog",
"get_icon_svg",
]);

const deckResponse = await withTimeout(
client.callTool({
name: "create_slide_deck",
arguments: {
deck: { deck_id: "smoke deck" },
slides: [
{
template_id: "slide-21",
content: {
title: "Smoke deck",
subtitle: "MCP deck planning works.",
},
},
],
dry_run: true,
},
}),
5_000,
);

assert.equal(deckResponse.isError, undefined);
assert.equal(deckResponse.structuredContent.deck_creation_status, "planned");
assert.equal(deckResponse.structuredContent.slides[0].layout_id, "slide-21");

const iconSearchResponse = await withTimeout(
client.callTool({
name: "search_icon_catalog",
Expand Down Expand Up @@ -99,6 +124,7 @@ try {
{
ok: true,
tools: toolNames,
deck_status: deckResponse.structuredContent.deck_creation_status,
icon_search_first_match: iconSearchResponse.structuredContent.icons[0].id,
review_status: reviewResponse.structuredContent.review_status,
},
Expand Down
1 change: 1 addition & 0 deletions scripts/verify-public-release.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -913,6 +913,7 @@ async function verifyPublicRoutes(baseUrl, options = {}) {
"review_ui_implementation_candidate",
"create_frontend_generation_context",
"create_frontend_implementation_skill_context",
"create_slide_deck",
"operator-review-ui",
],
"docs",
Expand Down
5 changes: 5 additions & 0 deletions site/build-site.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -6436,6 +6436,7 @@ examples/ai-native-design-system/canonical-examples.json</code></pre>
<p><strong>UI generation:</strong> the LLM or agent generates the interface outside JudgmentKit from the reviewed handoff.</p>
<p><strong>Implementation contract:</strong> <code>create_ui_implementation_contract</code> supplies <code>implementation_contract.design_system_source</code>, <code>implementation_contract.local_component_authority</code>, <code>implementation_contract.visual_token_adapter</code>, <code>implementation_contract.default_ai_native_design_system</code>, approved primitives, required states, static checks, browser QA expectations, <code>implementation_contract.visual_asset_policy</code>, and <code>implementation_contract.accessibility_policy</code> before final handoff. <code>review_ui_implementation_candidate</code> checks generated UI against that contract and marks failed design-system candidates as repair-only diagnostics, not accepted artifacts.</p>
<p><strong>Frontend adapter:</strong> <code>create_frontend_generation_context</code> combines a ready handoff, selected surface type, project frontend context, and verification expectations. <code>create_frontend_implementation_skill_context</code> turns that ready context into portable implementation instructions, semantic token roles, system font stacks, Lucide icon catalog policy, design-system provenance expectations, and local component authority without exposing raw skill files. Design-system compliance is not a substitute for activity fit.</p>
<p><strong>Slide decks:</strong> <code>create_slide_deck</code> plans or exports JudgmentKit presentation-theme decks from user-facing slide content. Hosted callers can use dry-run planning; PPTX export requires a local artifact runtime.</p>
<p><strong>Iteration:</strong> draft review produces updated context that re-enters source/activity review rather than becoming only a longer prompt.</p>
</div>
<p class="system-branch"><strong>Blocked path:</strong> if activity, workflow, or handoff is not ready, resolve targeted questions or leakage details before generating UI.</p>
Expand Down Expand Up @@ -6468,6 +6469,10 @@ examples/ai-native-design-system/canonical-examples.json</code></pre>
<h2>Frontend Context</h2>
<p>Call <code>create_frontend_generation_context</code> after the handoff gate when an agent needs frontend implementation guidance with selected surface type, project context, and verification expectations. Call <code>create_frontend_implementation_skill_context</code> when an MCP client needs compiled implementation skill guidance instead of repo-local skill access.</p>
</section>
<section class="doc-section" id="slide-decks">
<h2>Slide Decks</h2>
<p>Call <code>create_slide_deck</code> when an allowed brief, workflow review, handoff, or implementation evidence should become a JudgmentKit presentation, PowerPoint, or PPTX. The tool returns selected templates and content keys in dry-run mode, and writes PPTX artifacts only from a local <code>@oai/artifact-tool</code> runtime under the guarded output directory.</p>
</section>
<section class="doc-section" id="profiles">
<h2>Guidance Profiles</h2>
<p>Call <code>recommend_ui_workflow_profiles</code> when a brief sounds like specialized review work. Pass <code>profile_id: "operator-review-ui"</code> only when the recommendation evidence supports it.</p>
Expand Down
Loading
Loading