소스 정보
- 저장소
- InugamiDev/ultrathink-oss
- 최근 소스 활동
- 2026년 4월 6일 05:30
- 감지된 SKILL.md 언어
- 영어
- 스타
- 43
- 포크
- 10
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
SOC 직업 분류 기준
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/InugamiDev/ultrathink-oss --skill idempotency명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
Unified design foundations — design system architecture, tokens, component specs, visual principles, creative vision, figma integration, plus brand design system loader (66 real brands via DESIGN.md). Absorbs design, design-system, design-systems, design-principles, design-router, creative-vision, figma, design-md.
Render, summarize, and present markdown documents and structured content in multiple output modes
Ultra UI skill - combines Google's DESIGN.md spec (machine-readable design tokens) with the ui-ux-pro-max knowledge base (91 styles, 161 palettes, 73 font pairings, 161 products, 104 UX guidelines, 25 chart types). Generates lint-clean DESIGN.md files, validates token references and WCAG contrast, exports Tailwind/DTCG tokens, and diffs design systems version-over-version.
| name | idempotency |
| description | Idempotency patterns — idempotency keys, dedup, at-least-once, exactly-once |
| layer | domain |
| category | architecture |
| triggers | ["idempotency","idempotent","duplicate request","retry safety","exactly once","at least once","deduplication"] |
| linksTo | ["api-designer","message-queues","webhooks"] |
| linkedFrom | ["api-designer","webhooks"] |
| riskLevel | high |
An idempotent operation produces the same result regardless of how many times it is executed. This is critical for payment processing, webhook handlers, queue consumers, and any API that may receive retried requests due to network failures or client timeouts.
The client sends a unique key; the server stores the result and returns it on replay.
// Middleware: idempotency key check
async function idempotencyMiddleware(req: Request, res: Response, next: NextFunction) {
const key = req.headers['idempotency-key'] as string;
if (!key) return next(); // non-idempotent path
const cached = await db.query(
`SELECT status_code, body FROM idempotency_keys WHERE key = $1 AND endpoint = $2`,
[key, req.path]
);
if (cached.rows.length > 0) {
const { status_code, body } = cached.rows[0];
return res.status(status_code).json(JSON.parse(body));
}
// Acquire lock to prevent concurrent duplicates
const lock = await db.query(
`INSERT INTO idempotency_keys (key, endpoint, locked_at)
VALUES ($1, $2, NOW())
ON CONFLICT (key, endpoint) DO NOTHING
RETURNING key`,
[key, req.path]
);
if (lock.rows.length === 0) {
return res.().({ : });
}
originalJson = res..(res);
res. = {
db.(
,
[res., .(body), key, req.]
);
(body);
};
();
}
CREATE TABLE idempotency_keys (
key TEXT NOT NULL,
endpoint TEXT NOT NULL,
status_code INT,
body JSONB,
locked_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
completed_at TIMESTAMPTZ,
expires_at TIMESTAMPTZ NOT NULL DEFAULT NOW() + INTERVAL '24 hours',
PRIMARY KEY (key, endpoint)
);
CREATE INDEX idx_idempotency_expires ON idempotency_keys (expires_at);
async function processMessage(message: QueueMessage) {
const messageId = message.attributes.messageId;
// Atomic insert-or-skip
const result = await db.query(
`INSERT INTO processed_messages (message_id, processed_at)
VALUES ($1, NOW())
ON CONFLICT (message_id) DO NOTHING
RETURNING message_id`,
[messageId]
);
if (result.rows.length === 0) {
console.log(`Skipping duplicate message: ${messageId}`);
return; // already processed
}
await handleBusinessLogic(message.body);
}
Use deterministic identifiers derived from the operation itself:
// Instead of a random UUID, derive from the operation
import { createHash } from 'crypto';
function deriveIdempotencyKey(userId: string, action: string, amount: number, date: string) {
return createHash('sha256')
.update(`${userId}:${action}:${amount}:${date}`)
.digest('hex');
}