-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Add P360 Decision Readiness extension #24989
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
A biometric-powered decision support tool that helps high-performers know when they're in the best state to make important decisions. Features: - Check Readiness Command: Instantly view your decision readiness score (0-100) - Oura Integration: Secure OAuth connection to your Oura Ring - Smart Algorithm: Combines Sleep Score, Readiness Score, and HRV Balance - Clear Recommendations: Get actionable advice based on your biometric state - Privacy-First: No data stored on external servers Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
Congratulations on your new Raycast extension! 🚀 We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 10-15 business days. Once the PR is approved and merged, the extension will be available on our Store. |
Greptile OverviewGreptile SummaryThis PR adds a new P360 Decision Readiness extension that integrates with Oura Ring to help users determine optimal times for important decisions based on biometric data. The implementation is clean and follows Raycast extension best practices with proper OAuth integration, error handling, and user-friendly UI. Key Changes:
Issues Found:
Positive Highlights:
Confidence Score: 4/5
Important Files Changed
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
4 files reviewed, 2 comments
| # P360 Raycast Extension - 런칭 콘텐츠 | ||
|
|
||
| Store 승인 후 사용할 런칭 채널별 콘텐츠입니다. | ||
|
|
||
| --- | ||
|
|
||
| ## 1. Product Hunt | ||
|
|
||
| ### Tagline (60자 이내) | ||
| ``` | ||
| Know when to make important decisions with your biometric data | ||
| ``` | ||
|
|
||
| ### Description | ||
| ``` | ||
| P360 brings decision support to your Raycast launcher. | ||
|
|
||
| The Problem: | ||
| You track your HRV, sleep, and readiness with your Oura Ring. But what do you actually DO with that data in the moment? | ||
|
|
||
| - Making impulse purchases when tired | ||
| - Sending emails you regret when stressed | ||
| - Scheduling important meetings at wrong times | ||
|
|
||
| The Solution: | ||
| One keystroke (⌘ + Space → "p360") tells you if now is a good time for important decisions. | ||
|
|
||
| How it works: | ||
| 🟢 70-100: Great time for negotiations, important emails | ||
| 🔵 50-69: Good for everyday decisions | ||
| 🟡 30-49: Consider waiting for big decisions | ||
| 🔴 0-29: Avoid major commitments, focus on recovery | ||
|
|
||
| Built for biohackers and high-performers who want to optimize their decision-making, not just track their sleep. | ||
|
|
||
| Privacy-first: Your data stays between you and Oura. Nothing stored on our servers. | ||
| ``` | ||
|
|
||
| ### First Comment (Maker) | ||
| ``` | ||
| Hey PH! 👋 | ||
|
|
||
| I built this because I kept making bad decisions when tired - impulsive purchases, emails I'd regret, committing to things I shouldn't have. | ||
|
|
||
| I already had all the data in my Oura Ring, but I never checked it at the right moment. | ||
|
|
||
| P360 puts that data exactly where I need it - one keystroke away in Raycast. | ||
|
|
||
| The algorithm is simple (intentionally): | ||
| - Primary: Oura Readiness Score | ||
| - Fallback: Sleep Score | ||
| - Modifier: HRV Balance | ||
|
|
||
| Would love your feedback! What other integrations would be useful? | ||
| ``` | ||
|
|
||
| --- | ||
|
|
||
| ## 2. Reddit - r/raycast | ||
|
|
||
| ### Title | ||
| ``` | ||
| [Extension] P360 - Check your decision readiness from Oura Ring biometrics | ||
| ``` | ||
|
|
||
| ### Post | ||
| ``` | ||
| Hey r/raycast! | ||
|
|
||
| Just published my first Raycast extension - P360 Decision Readiness. | ||
|
|
||
| **What it does:** | ||
| - Connects to your Oura Ring via OAuth | ||
| - Shows your decision readiness score (0-100) | ||
| - Gives actionable recommendations | ||
|
|
||
| **How to use:** | ||
| ⌘ + Space → "p360" or "check readiness" | ||
|
|
||
| **Why I built it:** | ||
| I track everything with my Oura Ring but never checked the data at the right moment. Now I can see if I'm in a good state before sending important emails or making big decisions. | ||
|
|
||
| **Score guide:** | ||
| - 🟢 70+: Go for it | ||
| - 🔵 50-69: Good for routine stuff | ||
| - 🟡 30-49: Maybe wait | ||
| - 🔴 <30: Recovery mode | ||
|
|
||
| Available in the Raycast Store. Would love feedback! | ||
| ``` | ||
|
|
||
| --- | ||
|
|
||
| ## 3. Reddit - r/Biohackers | ||
|
|
||
| ### Title | ||
| ``` | ||
| Made a Raycast extension that tells me when to make important decisions based on Oura data | ||
| ``` | ||
|
|
||
| ### Post | ||
| ``` | ||
| Fellow biohackers, | ||
|
|
||
| I've been tracking with Oura for 2+ years but realized I was just collecting data without acting on it in real-time. | ||
|
|
||
| Built a simple tool that: | ||
| 1. Pulls my Sleep Score, Readiness, and HRV from Oura | ||
| 2. Calculates a "decision readiness" score | ||
| 3. Shows it in Raycast with one keystroke | ||
|
|
||
| Now before any important email, purchase, or commitment, I just hit ⌘+Space → "p360" and know if I should proceed or wait. | ||
|
|
||
| **The algorithm (v1, intentionally simple):** | ||
| - Base: Readiness Score (or Sleep Score if unavailable) | ||
| - Modifier: HRV Balance (±5 points) | ||
|
|
||
| **Example use cases:** | ||
| - About to send a confrontational email? Check first. | ||
| - Big purchase decision? See if you're in an optimal state. | ||
| - Planning important meetings? Schedule when you're typically high. | ||
|
|
||
| Anyone else doing something similar? Would love to hear how you're using real-time biometric feedback. | ||
| ``` | ||
|
|
||
| --- | ||
|
|
||
| ## 4. Hacker News - Show HN | ||
|
|
||
| ### Title | ||
| ``` | ||
| Show HN: P360 – Raycast extension for decision support using Oura biometrics | ||
| ``` | ||
|
|
||
| ### Post | ||
| ``` | ||
| I built a Raycast extension that shows your "decision readiness" based on Oura Ring data. | ||
|
|
||
| Problem: I have years of sleep/HRV/readiness data but never check it when making actual decisions. | ||
|
|
||
| Solution: One keystroke (⌘+Space → "p360") shows if now is a good time for important decisions. | ||
|
|
||
| How it works: | ||
| - Connects to Oura API via OAuth | ||
| - Combines Readiness Score, Sleep Score, HRV Balance | ||
| - Returns a 0-100 score with recommendations | ||
|
|
||
| Tech stack: | ||
| - TypeScript + React (Raycast API) | ||
| - Oura API v2 | ||
| - OAuth PKCE flow | ||
|
|
||
| The algorithm is intentionally simple: | ||
| - score = readinessScore ?? sleepScore | ||
| - hrvModifier = (hrvBalance - 50) * 0.1 | ||
| - finalScore = clamp(0, 100, score + hrvModifier) | ||
|
|
||
| I'm not claiming this is scientifically rigorous - it's a useful heuristic that makes me pause before decisions when tired. | ||
|
|
||
| Raycast Store link: [STORE_URL] | ||
| Source (MIT): [GITHUB_URL if public] | ||
|
|
||
| Feedback welcome! | ||
| ``` | ||
|
|
||
| --- | ||
|
|
||
| ## 5. Twitter/X - Launch Thread | ||
|
|
||
| ### Tweet 1 (Main) | ||
| ``` | ||
| Just launched P360 for Raycast 🚀 | ||
|
|
||
| One keystroke tells you if now is a good time for important decisions. | ||
|
|
||
| Connects to your Oura Ring and shows your decision readiness score. | ||
|
|
||
| 🟢 = Go for it | ||
| 🔴 = Maybe wait | ||
|
|
||
| Free in Raycast Store: [LINK] | ||
|
|
||
| 🧵 Here's why I built it... | ||
| ``` | ||
|
|
||
| ### Tweet 2 | ||
| ``` | ||
| I've tracked my sleep & HRV for 2+ years. | ||
|
|
||
| But I kept making bad decisions when tired: | ||
| - Impulse purchases | ||
| - Emails I'd regret | ||
| - Commitments I shouldn't make | ||
|
|
||
| The data was there. I just never checked it at the right moment. | ||
| ``` | ||
|
|
||
| ### Tweet 3 | ||
| ``` | ||
| Now it takes 1 second: | ||
|
|
||
| ⌘ + Space → "p360" → See my readiness | ||
|
|
||
| If I'm below 50, I wait. | ||
| If I'm above 70, I proceed confidently. | ||
|
|
||
| Simple, but it's changed how I approach decisions. | ||
| ``` | ||
|
|
||
| ### Tweet 4 | ||
| ``` | ||
| The algorithm is intentionally simple: | ||
|
|
||
| Base = Oura Readiness Score | ||
| Modifier = HRV Balance (±5 pts) | ||
|
|
||
| Not trying to be scientifically perfect. | ||
| Just a useful heuristic that makes me pause. | ||
| ``` | ||
|
|
||
| ### Tweet 5 | ||
| ``` | ||
| If you use Raycast + Oura, give it a try: | ||
|
|
||
| [RAYCAST STORE LINK] | ||
|
|
||
| Privacy-first: Your data stays between you and Oura. | ||
|
|
||
| Would love feedback on what to add next. | ||
| Calendar integration? Email warnings? Let me know 👇 | ||
| ``` | ||
|
|
||
| --- | ||
|
|
||
| ## 6. Launch Timing Strategy | ||
|
|
||
| ### Best Days | ||
| - **Product Hunt**: Tuesday-Thursday (avoid Monday/Friday) | ||
| - **Hacker News**: Tuesday-Wednesday morning (US time) | ||
| - **Reddit**: Evening US time | ||
|
|
||
| ### Recommended Sequence | ||
| 1. **Day 0**: Raycast Store 승인 확인 | ||
| 2. **Day 1 (Tuesday)**: | ||
| - 오전 9시 PST: Product Hunt 런칭 | ||
| - Twitter 런칭 스레드 | ||
| 3. **Day 1-2**: | ||
| - Reddit r/raycast 포스트 | ||
| - Reddit r/Biohackers 포스트 | ||
| 4. **Day 2-3**: | ||
| - Hacker News Show HN | ||
|
|
||
| ### 주의사항 | ||
| - 모든 채널에 동시 포스팅하지 말 것 (스팸으로 보일 수 있음) | ||
| - 각 채널에서 engagement에 빠르게 응답할 것 | ||
| - Product Hunt는 24시간 내 upvote 집중이 중요 | ||
|
|
||
| --- | ||
|
|
||
| ## 7. Assets Checklist | ||
|
|
||
| 런칭 전 준비할 것들: | ||
|
|
||
| - [ ] 스크린샷 3장 (Raycast Store용) | ||
| - [ ] Extension 아이콘 (512x512) | ||
| - [ ] Product Hunt 썸네일 (1270x760) | ||
| - [ ] Demo GIF (Twitter용, 15초 이내) | ||
| - [ ] GitHub repo public (선택) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file contains marketing/launch content in Korean and is not needed for the extension submission. Remove before merging.
Files like this should be kept in a separate repository or documentation folder, not in the Raycast extensions repository.
| # Raycast Store 제출 가이드 | ||
|
|
||
| ## 1. 스크린샷 준비 (필수) | ||
|
|
||
| Raycast Store에서 스크린샷은 매우 중요합니다. 아래 화면들을 캡처하세요: | ||
|
|
||
| ### 필요한 스크린샷 | ||
|
|
||
| ``` | ||
| metadata/p360-1.png - 메인 화면 (Decision Readiness 결과) | ||
| metadata/p360-2.png - Oura 연결 화면 (OAuth 프롬프트) | ||
| metadata/p360-3.png - 에러 처리 화면 (선택) | ||
| ``` | ||
|
|
||
| ### 스크린샷 촬영 방법 | ||
|
|
||
| 1. **개발 모드 실행** | ||
| ```bash | ||
| cd p360-raycast | ||
| npm run dev | ||
| ``` | ||
|
|
||
| 2. **Raycast에서 테스트** | ||
| - `⌘ + Space` → "Check Readiness" 입력 | ||
| - Oura 계정 연결 (처음 실행 시) | ||
|
|
||
| 3. **스크린샷 캡처** | ||
| - `⌘ + Shift + 5` → Raycast 창만 캡처 | ||
| - 또는 Raycast 내장 스크린샷: Extension 실행 중 `⌘ + S` | ||
|
|
||
| 4. **스크린샷 저장 위치** | ||
| ```bash | ||
| mkdir -p metadata | ||
| # 스크린샷을 metadata/ 폴더에 저장 | ||
| ``` | ||
|
|
||
| ### 좋은 스크린샷 팁 | ||
|
|
||
| - **녹색 상태 (70+)** 를 보여주면 positive한 인상 | ||
| - **테이블 데이터가 잘 보이도록** 스크롤 위치 조정 | ||
| - **다크 모드** 권장 (대부분 Raycast 유저가 다크모드 사용) | ||
|
|
||
| --- | ||
|
|
||
| ## 2. 아이콘 확인 | ||
|
|
||
| 현재 아이콘이 placeholder입니다. 제대로 된 아이콘이 필요합니다: | ||
|
|
||
| ``` | ||
| assets/extension-icon.png (512x512 권장) | ||
| assets/oura-icon.png (현재 있음) | ||
| ``` | ||
|
|
||
| ### 아이콘 제작 옵션 | ||
|
|
||
| 1. **직접 제작**: Figma, Sketch | ||
| 2. **AI 생성**: Midjourney, DALL-E | ||
| 3. **간단한 방법**: 이모지 기반 (🧠 또는 💚) | ||
|
|
||
| --- | ||
|
|
||
| ## 3. Store 제출 명령어 | ||
|
|
||
| 모든 준비가 완료되면: | ||
|
|
||
| ```bash | ||
| cd p360-raycast | ||
|
|
||
| # 1. 린트 체크 | ||
| npm run lint | ||
|
|
||
| # 2. 빌드 테스트 | ||
| npm run build | ||
|
|
||
| # 3. Store 제출 | ||
| npm run publish | ||
| # 또는 | ||
| npx @raycast/api@latest publish | ||
| ``` | ||
|
|
||
| ### 제출 시 필요한 정보 | ||
|
|
||
| - **Raycast 계정**: https://raycast.com 에서 가입 | ||
| - **Author 검증**: 처음 제출 시 이메일 인증 필요 | ||
|
|
||
| --- | ||
|
|
||
| ## 4. 리뷰 프로세스 | ||
|
|
||
| Raycast Store 리뷰는 보통 **2-5일** 소요됩니다. | ||
|
|
||
| ### 리뷰 체크리스트 | ||
|
|
||
| - [ ] README.md가 명확한가? | ||
| - [ ] 스크린샷이 있는가? | ||
| - [ ] OAuth 플로우가 작동하는가? | ||
| - [ ] 에러 핸들링이 되어 있는가? | ||
| - [ ] 개인정보 처리가 명시되어 있는가? | ||
|
|
||
| ### 리젝션 사유 (피해야 할 것들) | ||
|
|
||
| - 스크린샷 없음 | ||
| - 빈약한 설명 | ||
| - 작동하지 않는 기능 | ||
| - 보안 취약점 | ||
|
|
||
| --- | ||
|
|
||
| ## 5. 제출 후 할 일 | ||
|
|
||
| 1. **승인 대기** (2-5일) | ||
| 2. **승인 시 런칭 준비** | ||
| - Product Hunt 초안 작성 | ||
| - Reddit 포스트 준비 | ||
| - Twitter/X 런칭 트윗 준비 | ||
|
|
||
| --- | ||
|
|
||
| ## Quick Commands | ||
|
|
||
| ```bash | ||
| # 개발 모드 | ||
| npm run dev | ||
|
|
||
| # 린트 수정 | ||
| npm run fix-lint | ||
|
|
||
| # 빌드 | ||
| npm run build | ||
|
|
||
| # Store 제출 | ||
| npm run publish | ||
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file contains submission guide content in Korean and is not needed for the extension submission. Remove before merging.
Internal documentation should not be included in the extensions repository.
Description
P360 is a biometric-powered decision support tool that helps high-performers know when they're in the best state to make important decisions.
Features
How It Works
Your decision readiness is calculated from:
Score Guide
Screencast
Checklist
npm run buildand tested this extension locallyCHANGELOG.mdfile with the initial release notesmetadatafolder