Chisle
코딩 에이전트 플러그인, 20개 실시간 작업에서 기본 모델 52% 활용, 간결한 페르소나와 출력 압축 제공
Jay는 확률적 AI 결과와 결정론적 엔지니어링을 연결하고, AI 기반 웹 개발을 위한 자체 교정 시각 생태계를 제공합니다
Jay bridges the gap between probabilistic AI outputs and deterministic engineering rigor. The self-correcting visual ecosystem for AI-native web development.
개발 도구TypeScript · JavaScriptGitHub @jay-framework온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
jay Framework
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Jay is a self-correcting visual ecosystem for AI-native web development. It bridges the gap between probabilistic AI outputs and deterministic engineering standards through a development-time feedback loop that validates agent actions, promotes smart code reuse, and ensures code is production-ready before deployment.
Jay doesn't let AI guess if its code works. The framework automatically validates every output:
.jay-html), developers write application logic (page.ts), with strict separation between the twojay-stack validate, tag coverage reports, TypeScript type checking, and plugin validation catch errors immediately.jay-html) by mapping contract data to UIpage.ts) against strict contracts, without writing markupJay is the minimal client-side runtime (~1,200 lines) — contracts, fine-grained reactivity, and secure sandboxing. Jay Stack is the full-stack framework built on top — three-phase rendering, dev server, production builds, and plugins. Most users work with Jay Stack.
At the heart of Jay is the .jay-contract — a YAML agreement that decouples design from code. It defines the exact schema of a component: data tags, interactive elements, and variant states.
# counter.jay-contract
name: counter
tags:
- tag: count
dataType: number
- tag: adderButton
type: interactive
elementType: HTMLButtonElement
- tag: subtracter
type: interactive
elementType: HTMLButtonElement
The contract compiles to TypeScript types. The AI Designer uses it to build the UI:
<div>
<button ref="subtracter">-</button>
<span>{count}</span>
<button ref="adder-button">+</button>
</div>
The AI Developer codes against the generated types — no HTML, no CSS:
import { render, CounterElementRefs } from './counter.jay-html';
import { createSignal, makeJayComponent, Props } from '@jay-framework/component';
function CounterConstructor({ initialValue }: Props<CounterProps>, refs: CounterElementRefs) {
const [count, setCount] = createSignal(initialValue);
refs.subtracter.onclick(() => setCount(count() - 1));
refs.adderButton.onclick(() => setCount(count() + 1));
return { render: () => ({ count }) };
}
export const Counter = makeJayComponent(render, CounterConstructor);
Either side can iterate independently — the designer can redesign the UI without the developer changing a line of logic.
Jay Stack's full-stack framework renders in three phases for optimal performance:
export const page = makeJayStackComponent<PageContract>()
.withProps<PageProps>()
.withSlowlyRender(async (props) => {
return phaseOutput({ title: 'My Page' }, {});
})
.withFastRender(async (props, carryForward) => {
return phaseOutput({ dynamicData: await fetchData() }, {});
})
.withInteractive((props, refs, viewState) => {
return { render: () => ({ liveCount: count() }) };
});
AI agents favor reusing code over generating logic from scratch. Jay plugins are NPM packages that bundle headless components, server actions, and contracts:
Current list — more plugins are in development.
packages/plugins/)| Plugin | Package | Description |
|---|---|---|
| ui-kit | @jay-framework/ui-kit | Headless UI components — popover menu, scroll carousel, clipboard copy, word/letter split for text animation |
| gemini-agent | @jay-framework/gemini-agent-plugin | AI chat agent powered by Gemini with page automation capabilities |
| webmcp | @jay-framework/webmcp-plugin | Web-based MCP (Model Context Protocol) bridge |
| a11y-validator | @jay-framework/a11y-validator | Accessibility validation rules for jay-html pages |
| seo-validator | @jay-framework/seo-validator | SEO validation rules for jay-html pages |
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗