Skip to content

Instantly share code, notes, and snippets.

View wickedev's full-sized avatar

Jeong-Yun Ryan Yang wickedev

  • ProtoPie
  • Anyang si, South Korea
View GitHub Profile
@wickedev
wickedev / design.md
Created October 31, 2025 04:55
Kiro for Claude Code

Design Document

Overview

Code Generator는 Parser가 생성한 Protobuf AST를 받아서 타입 안전한 TypeScript 코드를 생성하는 핵심 컴포넌트입니다. Generator는 gRPC 서비스 스텁, 메시지 타입 정의, React Hook 통합 코드를 생성하며, google-protobuf 라이브러리와 @improbable-eng/grpc-web를 활용한 런타임 직렬화/역직렬화를 지원합니다. 생성된 코드는 Promise API와 React Hook API 두 가지 사용 패턴을 모두 지원합니다.

Architecture

High-Level Architecture

@wickedev
wickedev / stop-slack-dm-docs.md
Last active October 24, 2025 00:13
stop-slack-dm.sh

stop-slack-dm.sh 사용 문서

Claude Code 대화 내용을 Slack DM으로 자동 전송하는 훅 스크립트입니다.

기능

  • Claude Code 세션의 마지막 어시스턴트 응답을 추출
  • Slack API를 통해 지정된 사용자에게 DM 전송
  • 이메일 주소 또는 사용자 ID를 통한 사용자 식별
  • 수동 메시지 전송 기능
@wickedev
wickedev / playwright-mcp-tools-list.json
Created September 4, 2025 22:41
playwright-mcp-tools-list.json
{
"tools": [
{
"name": "browser_click",
"title": "Click",
"description": "Perform click on a web page",
"inputSchema": {
"type": "object",
"properties": {
"element": {
@wickedev
wickedev / CoroutineTests.kt
Last active August 14, 2023 19:46
CoroutineTests
package com.example.coroutine
import io.kotest.core.spec.style.DescribeSpec
import io.kotest.matchers.shouldBe
import kotlinx.coroutines.*
import kotlinx.coroutines.reactive.awaitFirstOrNull
import kotlinx.coroutines.reactor.mono
import org.jooq.DSLContext
import org.jooq.impl.DSL
import kotlin.coroutines.CoroutineContext
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Ansi 0 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.20796161890029907</real>
#!/bin/bash
EXTERNAL_IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
curl -sfL https://get.k3s.io | sh -s - \
--disable=traefik \
--no-deploy=traefik \
--write-kubeconfig-mode=644 \
--tls-san=${EXTERNAL_IP}
@wickedev
wickedev / apollo-client.ts
Last active November 18, 2023 22:46
GraphQL(apollo) relative path setup
import { ApolloClient, ApolloLink, HttpLink, InMemoryCache, split } from '@apollo/client'
import { WebSocketLink } from '@apollo/client/link/ws'
const httpLink = new HttpLink({
uri: '/graphql',
})
const wsLink = new WebSocketLink({
uri: `${getWebsocketURI()}/subscriptions`,
options: {
@wickedev
wickedev / react-app-env.d.ts
Last active July 26, 2021 11:13
react-router generic Location hack
/// <reference types="react-scripts" />
declare module 'react-router' {
import type { Location, State } from 'history'
export type * from 'react-router'
export declare function useLocation<S extends State = State>(): Location<S>
}
@wickedev
wickedev / App.tsx
Last active July 19, 2021 02:33
valtio sample
import React from "react";
import { proxy, useSnapshot } from "valtio";
class Store {
public counter = 0;
public text = "";
get double() {
return this.counter * 2;
}
@wickedev
wickedev / schema.graphql
Created July 8, 2021 16:03
typegraphql-prisma sample
type Query {
post(where: PostWhereUniqueInput!): Post
findFirstPost(
where: PostWhereInput
orderBy: [PostOrderByInput!]
cursor: PostWhereUniqueInput
take: Int
skip: Int
distinct: [PostScalarFieldEnum!]
): Post