Claude-Guardian
Claude Guardian는 계정 안전과 위험 방지를 위한 올인원 기능으로, 기기·계정 이력·네트워크·결제 옵션을 지능적으로 평가해 제공합니다
소문은 들었죠. 이제 페이지에서 실시간 jev 점수를 보고, 호스팅 MCP와 다운로드 스킬 두 가지 방식으로 활용하세요
You've heard the hype. Now see it work: live jev scoring on the page, plus two ways to use it — the hosted MCP and the downloadable skill.
스킬JavaScript · TypeScriptGitHub @lucioamor온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기jevify: find the AI calls in your app that are really decisions, then migrate them to JEV in shadow mode. Skills for Lovable and Claude Code, backed by the jevify MCP.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Runtime model calls often hide small structured decisions inside expensive or hard-to-validate generation paths.
Everyone is talking about performance gains and token savings from moving decisions off general-purpose LLMs. The harder question is what that looks like in practice, in your app: which calls, which lines, what changes, and how you would see the gain rather than take it on faith.
jevify is built to make that concrete, in three steps you can inspect:README 전문 보기 ↗Runtime model calls often hide small structured decisions inside expensive or hard-to-validate generation paths.
Everyone is talking about performance gains and token savings from moving decisions off general-purpose LLMs. The harder question is what that looks like in practice, in your app: which calls, which lines, what changes, and how you would see the gain rather than take it on faith.
jevify is built to make that concrete, in three steps you can inspect:
path#line), shows how each response is consumed, and separates the bounded decisions — a queue, a score, a yes/no — from the generation that should stay generation. A clean audit is a valid answer./jevify migrate runs the new path in shadow beside the current one and logs both: cost per decision, latency p50/p95, agreement, labeled disagreements, fallback rate. The gain becomes a number from your data, or the migration stops.The pieces share one method: this skill is the canonical source, the MCP service at jevify.lovable.app runs the same audit remotely and keeps reports under your account, the open-source local MCP server runs the same engine offline on your machine, and the Lovable skill brings it into Lovable projects. Every effect stays a hypothesis until shadow data says otherwise.
// Before: a model call returns a label; the app only uses the label.
const result = await generateObject({
schema: z.object({ queue: z.enum(["sales", "support", "other"]) }),
prompt: `Route this ticket: ${ticket.message}`,
});
return dispatch(result.object.queue);
// After /jevify migrate: JEV beside the current path, behind a flag. Shadow never blocks or changes the answer.
const MODE = env.JEVIFY_TRIAGE_MODE ?? "shadow"; // off | shadow | on
const MIN_CONFIDENCE = 0.8; // placeholder until tuned on shadow data
if (MODE === "on") {
const jev = await decideQueue(ticket).catch(() => null); // error or timeout → current path, never "no"
if (jev && jev.answer !== "insufficient_context" && jev.confidence >= MIN_CONFIDENCE) {
return dispatch(jev.answer);
}
}
const current = await currentModelRoute(ticket); // the existing generateObject call, unchanged
if (MODE === "shadow") void decideQueue(ticket).then((jev) => logShadow({ current, jev })).catch(() => {});
return dispatch(current);
decideQueue sends a Choice question over { ticket }; its request shape comes from the current TypeSafe docs at migration time.
From the sample report over this repository's evals/ fixtures (local mode, --wide):
16 runtime call-sites in 13 files · 10 JEV candidates (1 inside a composite) · 2 generation tasks retained
1 deterministic · 1 embedding search · 1 human review · 1 unknown · 1 consolidation group · 1 wide opportunity
evals/fixtures/ticket-router.ts#3 | JEV_CANDIDATE | Choice | LOW | dispatch() uses only the label
evals/fixtures/announcement.ts#6 | GENERATION_REQUIRED | — | — | publish(r.text)
evals/fixtures/ban-account.ts#6 | HUMAN_REVIEW | — | HIGH | policy requires a moderator
Consolidation: consolidation.ts #6 #7 #8 → one request with Choice + Score + Noul over { ticket }
How that was produced and what it does not prove: evals/results-local-v1.3.md.
npx skills add lucioamor/jevifyclaude plugin marketplace add lucioamor/jevify then claude plugin install jevify@jevify (untested until the v1.3 branch is published)https://github.com/lucioamor/lovable-skill-jevify under Settings → Skills → Add → Import from GitHubclaude mcp add jevify -- npx -y @nxlv-ai/jevify (source)See INSTALL.md for MCP connection details.
/jevify audits and reports without editing source; add --wide for non-call semantic-code opportunities./jevify migrate <finding> plans and, after explicit approval, migrates one candidate in shadow mode.Installed as a Claude Code plugin, the command may be namespaced as /jevify:jevify.
In local mode, the agent reads call-sites, prompts, response parsing, and consumers, then writes jevify-report.md when it has file access or reports in Lovable chat. Local mode sends no code to the jevify service, although the agent itself may use remote processing.
In MCP mode, the jevify service classifies a narrow source window and stores its service report under the authenticated account. That is triage: the agent must inspect the consumer for every JEV_CANDIDATE and DETERMINISTIC_CODE, preserve the service result, and record confirmation or disagreement. The service also exposes an optional decision proxy at /api/public/jevify/decision and a harness; the audit and migrate flows do not call JEV.
Install the official TypeSafe agent skill linked from llms.txt for detailed question design. /jevify identifies where a migration may fit and governs how to validate it safely; it does not reproduce TypeSafe's skill.
Each candidate is routed, after classification, to a primitive, one of TypeSafe's patterns, and the closest official cookbook, with a line on what the app must adapt. The skill carries only the selection signals; the recipes stay in TypeSafe's live docs, and their measured results are never presented as expected effects for your app.
Created by Lucio Amorim, Lovable Partner. Dual-licensed by content type:
scripts/, launch/, evals/, .claude-plugin/, .mcp.json and any other source files): Apache License 2.0.