{"id":51475262,"url":"https://github.com/devswha/lazyprompt","last_synced_at":"2026-07-06T20:03:17.443Z","repository":{"id":368446312,"uuid":"1285179013","full_name":"devswha/lazyprompt","owner":"devswha","description":"Codex skill + plugin: turn vague ideas into optimal prompts for lazycodex/OmO $ulw-plan and $ulw-loop","archived":false,"fork":false,"pushed_at":"2026-06-30T15:01:52.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-30T17:05:06.277Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devswha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-30T14:53:19.000Z","updated_at":"2026-06-30T15:02:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/devswha/lazyprompt","commit_stats":null,"previous_names":["devswha/lazyprompt"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/devswha/lazyprompt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devswha%2Flazyprompt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devswha%2Flazyprompt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devswha%2Flazyprompt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devswha%2Flazyprompt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devswha","download_url":"https://codeload.github.com/devswha/lazyprompt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devswha%2Flazyprompt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35204421,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-06T20:03:16.108Z","updated_at":"2026-07-06T20:03:17.362Z","avatar_url":"https://github.com/devswha.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"assets/mascot.png\" width=\"200\" alt=\"lazyprompt mascot\" /\u003e\n\n# lazyprompt\n\n**막연한 아이디어를 [lazycodex / OmO](https://github.com/code-yeongyu/lazycodex)의 `$ulw-plan`·`$ulw-loop`가 가장 잘 먹는 최적 프롬프트로 바꿔주는 Codex 스킬**\n\n_Turn a vague idea into the optimal copy-paste prompt for `$ulw-plan` / `$ulw-loop`._\n_Outputs prompt text only — it never auto-runs the target skill._\n\n[![license](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](LICENSE)\n[![Codex](https://img.shields.io/badge/Codex-skill%20%2B%20plugin-7C3AED?style=flat-square)](https://developers.openai.com/codex/skills)\n[![invoke](https://img.shields.io/badge/invoke-%24lazyprompt-111827?style=flat-square)](#2-사용법)\n\n\u003c/div\u003e\n\n---\n\n## 1. 설치\n\nCodex에 아래 한 줄 붙여넣고 설치하면 끝:\n\n```bash\ncodex plugin marketplace add devswha/lazyprompt\n```\n\n\u003e GUI면 `/plugins` → **Add Marketplace** → `https://github.com/devswha/lazyprompt` 붙여넣고 `lazyprompt` 설치. 안 보이면 Codex 재시작.\n\n## 2. 사용법\n\nCodex 입력창에 `$lazyprompt` 뒤에 **하고 싶은 걸 평소 말로 한 줄** 적으면 됩니다.\n\n```text\n$lazyprompt 내 쇼핑몰에 상품 후기(별점+사진) 넣고 실제로 올라가는지 확인하는 프롬프트 만들어줘\n```\n```text\n$lazyprompt 우리 서비스에 검색 기능 넣고 싶어\n```\n\n- 뭘 만들지 뚜렷하면 → **실행+검증(`$ulw-loop`)**, 아직 막연하면 → **계획(`$ulw-plan`)** 프롬프트로 알아서 골라줍니다.\n- 모르는 값은 지어내지 않고 `사용자 미확인`으로 남깁니다.\n- **프로젝트 지침을 먼저 읽습니다.** 저장소 안이면 `AGENTS.md`/`agent.md`, `CLAUDE.md`, `.cursorrules` 같은 에이전트 지침 파일을 먼저 읽어 그 규칙을 프롬프트에 반영하고, 거기 이미 적힌 건 다시 묻지 않습니다.\n- **막연하면 알아서 물어봅니다(OmX 방식).** 아이디어가 뚜렷하면 바로 프롬프트, 막연하면 자동으로 딥 인터뷰(짧게)로 들어가 가장 약한 부분을 하나씩 물어 채운 뒤 만듭니다. 그냥 바로 받고 싶으면 `--direct` 또는 \"그냥 만들어\", 더 깊게 잡고 싶으면 `--deep`.\n\n## 3. 스킬 쓰면 나오는 것\n\n두 부분이 나옵니다 — **`프롬프트`(복사해서 붙여넣을 것)** 와 **`프롬프트 설명`(그냥 읽어보는 쉬운 말)**.\n\n```text\n프롬프트 (복사해서 $ulw-loop에 붙여넣기)\n$ulw-loop \"\u003c하고 싶은 일 + 다 됐는지 확인법 + 조심할 점 + 하지 말 것을 담은 한 덩어리 문장\u003e\"\n\n프롬프트 설명 (읽어보기용 — 붙여넣지 마세요, 쉬운 말)\n- 뭘 시키는지 / 다 된 걸 어떻게 확인하는지\n- 언제 \"끝\"으로 치는지 / 조심할 상황 / 절대 하지 말 것\n- 같이 부른 도우미 기능 (하나씩 왜 쓰는지)\n- 왜 이 방식(계획/실행)을 골랐는지\n```\n\n`프롬프트`만 복사해서 `$ulw-loop`(또는 `$ulw-plan`)에 붙여넣으면 끝. `프롬프트 설명`은 안 붙여도 됩니다.\n\n**끼워 넣는 도우미 기능(`$`-스킬)과 왜 쓰는지** — 작업에 맞는 것만 자동으로 넣습니다(맞는 게 없으면 안 넣음). OmO가 설치돼 있으면 실제 설치본과 대조해, 없어진 도우미는 넣지 않고 알려줍니다:\n\n| 도우미 | 왜 쓰나 |\n| --- | --- |\n| `$frontend` | 화면·버튼을 만들고 보기 좋게 |\n| `$ast-grep` | 코드 구조로 찾기·한꺼번에 고치기 |\n| `$lsp` | 정의·참조 찾고, 바꾼 코드의 오류 확인 |\n| `$programming` | 언어별로 엄격하게 구현 |\n| `$remove-ai-slops` | AI가 만든 어색한 코드 정리 |\n| `$review-work` | 끝내기 전에 한 번 더 검토 |\n| `$init-deep` | 큰 코드베이스 파악·기억 |\n| `$rules` | 프로젝트 규칙 지키기 |\n| `$start-work` | 세운 계획을 실제 작업으로 시작 |\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e자세히 (왜 쓰나 · 무엇이 채워지나 · 파일 구조 · 안 하는 것 · 다른 설치법)\u003c/b\u003e\u003c/summary\u003e\n\n### 왜 쓰나\n\n`ulw-plan`/`ulw-loop`은 **어떻게 부탁하느냐**에 따라 결과가 크게 달라집니다. 이 스킬은 좋은 결과가 나오도록 그 부탁 문장을 대신 꼼꼼히 써 줍니다 — 당신은 하고 싶은 걸 한 줄로 던지기만 하면 됩니다. 정말 필요한 정보가 비어 있을 때만 한 번에 묶어서 묻습니다.\n\n### 무엇이 채워지나\n\n| 타깃 | 프롬프트에 자동으로 담기는 것 |\n| --- | --- |\n| `$ulw-loop` (실행+검증 반복) | 뭘 만들지 · 다 됐는지 확인하는 법 · 언제 \"끝\"인지 · 조심할 상황 · 확인 방법 · 절대 하지 말 것 |\n| `$ulw-plan` (계획 먼저) | 지금 얼마나 뚜렷한지 · 당신이 직접 정할 것 · 알아둔 배경과 지킬 조건 |\n\n\u003e 왜 `프롬프트`가 한 덩어리 문장인가요? `ulw-loop`은 줄 단위 목록을 별도 작업으로 쪼개서 읽기 때문에, 한 덩어리로 유지해야 내용은 풍부하게 전달되면서 작업이 과하게 쪼개지지 않습니다.\n\n### 딥 인터뷰 (막연하면 자동, GJC deep-interview 이식)\n\n막연한 아이디어를 **한 번에 하나씩** 물어 명료도를 점수로 끌어올린 뒤 프롬프트를 만드는 모드. **막연하면 자동으로 켜지고(기본 짧게), 명확하면 안 켜지고 바로 출력**합니다. 스킵/조절은 아래 오버라이드로.\n\n```bash\n$lazyprompt 우리 서비스에 검색 기능 넣고 싶어         # 막연 → 자동으로 짧은 인터뷰\n$lazyprompt --direct 로그인 API 만들어줘             # 막연해도 인터뷰 건너뛰고 바로\n$lazyprompt --deep 우리 서비스에 검색 기능 넣고 싶어   # 더 깊게 강제 (--interview/--quick/--standard도)\n```\n\n- **깊이별 막연도 임계값**(이 값 이하로 내려가면 인터뷰 종료): `--quick` 0.60 · `--standard` 0.50 · `--deep` 0.35.\n- **가중 채점**: greenfield는 `1 - (목표0.40 + 제약0.30 + 성공기준0.30)`, brownfield는 `1 - (목표0.35 + 제약0.25 + 성공기준0.25 + 기존이해0.15)`. 답변이 앞말을 뒤집거나 범위를 늘리면 점수는 **다시 올라갈 수도** 있습니다(양방향).\n- 시작 전 **최상위 구성요소(1~6개)**를 한 번 확인하고, 매 라운드 **가장 약한 부분**만 골라 이유와 함께 묻습니다. 사실(스택·기존 코드)은 저장소를 먼저 뒤져 근거로 확인하고, 결정만 사용자에게 묻습니다.\n- 결과물은 여전히 `프롬프트` + `프롬프트 설명` 2부뿐 — 타깃 스킬을 대신 실행하지 않습니다.\n- **oh-my-codex 심화**: 근거에 출처 라벨(`[from-code]`/`[from-user]` 등)을 붙여 사실과 결정을 안 섞고, 범위가 커지면 Simplifier·핵심이 흔들리면 Ontologist 질문을 넣고, 마무리 전 앞 답변을 한 번 더 눌러봅니다(비목표가 정해지기 전엔 완료로 안 침).\n\n### 프롬프트 품질 하드닝 (oh-my-codex 참고)\n\n생성되는 프롬프트에 `$ulw-plan`/`$ulw-loop`이 실제로 보상하는 구조를 더 두껍게 담습니다(관련될 때만).\n\n- **위험 티어**: 인증·보안·마이그레이션·파괴적 작업·개인정보·공개 API 파괴 같은 고위험이면 계획에 **사전부검(실패 시나리오 3개)**과 unit/integration/e2e/observability 테스트 계획을 붙입니다.\n- **계획(plan)**: 테스트 가능한 성공기준 · 파일 참조 · 수치 지표(\"빠르게\"→\"p99 \u003c 200ms\") · 원칙/결정 동인/후보안(RALPLAN-DR)과 결정 기록(ADR).\n- **실행(loop)**: 작업 크기에 따라 성공기준 개수를 정하고(LIGHT 1~2 / HEAVY 3+), 각 기준을 `scenario`+`expectedEvidence`+실제 확인 채널로. **빌드·테스트 통과는 필요조건일 뿐**이라 실제 화면·요청 같은 눈에 보이는 증거와 정리(cleanup)까지 요구합니다.\n\n### 파일 구조\n\n```text\npackage.json                                        # 버전 단일 소스 + npm scripts\nCHANGELOG.md                                        # 변경 이력 (Keep a Changelog + SemVer)\nscripts/sync-version.mjs                            # 버전 동기화·정합성 검사 도구\nscripts/sync-skill.mjs                              # 스킬 사본 동기화·정합성 검사 도구\ntest/                                               # 스킬 계약 + 버전 정합성 테스트\n.agents/skills/lazyprompt/SKILL.md                  # 레포에서 바로 인식되는 스킬 (동기화 대상 — 손으로 고치지 말 것)\n.agents/plugins/marketplace.json                    # 마켓플레이스 매니페스트\nplugins/lazyprompt/\n├── .codex-plugin/plugin.json                       # Codex 플러그인 매니페스트 (버전 동기화 대상)\n└── skills/lazyprompt/SKILL.md                      # 플러그인에 동봉된 스킬 (단일 소스 — 여기만 수정)\n```\n\n### 버전 관리 (Versioning)\n\n버전 단일 소스는 `package.json`이며, [SemVer](https://semver.org/lang/ko/)와 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/)를 따른다. `plugin.json`의 버전은 여기서 자동으로 맞춰진다.\n\n```bash\nnpm test                 # 스킬 계약 + 버전 정합성 테스트\nnpm run version:check    # package.json ↔ plugin.json 버전 어긋남 검사\nnpm run skill:check      # 패키지 ↔ 레포 로컬 SKILL.md 어긋남 검사\nnpm version patch        # 1.0.0 → 1.0.1: 테스트 → CHANGELOG 스탬프 → plugin.json 동기화 → 커밋 + 태그\ngit push --follow-tags   # 커밋과 v* 태그를 함께 푸시\n```\n\n- `npm version \u003cpatch|minor|major\u003e`가 `package.json` 버전을 올리면, `version` 훅이 `plugin.json` 버전(`x.y.z+codex.\u003c빌드시각\u003e`)과 `CHANGELOG.md`의 `[Unreleased]` 항목을 자동으로 스탬프한 뒤 함께 커밋·태그한다.\n- `plugin.json` 버전은 손으로 고치지 말 것 — `npm run version:sync`로 맞춘다. 어긋나면 `npm test`가 실패한다.\n- 릴리스 전 바뀐 내용은 `CHANGELOG.md`의 `## [Unreleased]` 아래에 먼저 적어 둔다.\n- 스킬 수정은 `plugins/lazyprompt/skills/lazyprompt/SKILL.md`(단일 소스)에만 하고 `npm run skill:sync`로 `.agents/` 사본을 맞춘다. 어긋나면 `npm test`가 실패한다.\n\n### 안 하는 것 (Non-goals)\n\n- 대상 스킬을 대신 실행하지 않음 — 프롬프트 텍스트만 만들어 줌.\n- 확인 안 된 성공기준·제약을 지어내지 않음.\n- 없는 `$`-스킬을 지어내지 않음.\n- 도우미 스킬 목록 자동 동기화는 안 함 (OmO 공개 `$`-스킬 2026-07 기준, 수동 갱신).\n\n### 다른 설치법\n\n```bash\n# 클론해서 그 안에서 Codex 실행 (설치 0단계)\ngit clone https://github.com/devswha/lazyprompt\ncd lazyprompt\ncodex   # .agents/skills/ 자동 인식 → $lazyprompt 바로 사용\n```\n```bash\n# 개인 전역 스킬로 복사 — 어느 레포에서나 사용\ncp -R .agents/skills/lazyprompt ~/.agents/skills/\n```\n\n\u003c/details\u003e\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevswha%2Flazyprompt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevswha%2Flazyprompt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevswha%2Flazyprompt/lists"}