454 Commits

Author SHA1 Message Date
tahodev 6e67fd1e0a feat: 공유누리 공공시설 검색 스킬 추가 (sharenuri-facility-search) (#666)
* Create skill.json

* Create instruction.md

* Create SKILL.md

* Create sharenuri_search.py

* Create DISCLAIMER.md

* Create TRADEMARK-LEGAL-STATEMENT.md

* Create test_sharenuri_search.py

* Create skill.json

* Create instruction.md

* Create sharenuri_search.py

* Create DISCLAIMER.md

* Create TRADEMARK-LEGAL-STATEMENT.md

* Create sharenuri-facility-search.dolshoi.md

* Create sharenuri-facility-search.generic.md

* Create sharenuri-facility-search.md

* Update README.md

* Update trademark-use-review.md

* Update runtime-action-audit.md

* Update plugin.json

* Update cli.test.js

* Update skill-docs.test.js

* Add tests/__init__.py for sharenuri-facility-search
2026-09-12 17:09:23 +09:00
Jeffrey (Dongkyu) Kim 9798c2fa37 feat(k-skill-cli): add version command
Print the installed package version via `version`, `--version`, `-V`, and `-v`.

Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
2026-09-12 04:07:22 +09:00
Jeffrey (Dongkyu) Kim d0ffe5219d Merge pull request #662 from helenanova/feature/660
fix(korean-privacy-terms): install.sh 0바이트 템플릿 경고 + 한글 약관 누락 문서화 (#660)
2026-09-11 17:49:13 +09:00
helenanova d7f45d4db0 fix(korean-privacy-terms): install.sh 0바이트 템플릿 경고 + 한글 약관 누락 문서화 (#660)
pin 된 업스트림의 한글 이용약관 템플릿이 0바이트라 한국어 경로에서
약관 생성이 조용히 불가능한 문제(#660)에 대해, 이슈 제안 2·3안을 구현한다.

- install.sh: pin 검증 직후 *.tmpl 0바이트 파일을 찾아 경고로 표면화
  (다른 경로는 정상 생성되므로 설치는 계속)
- instruction.md Failure modes 에 한글 약관 템플릿 누락과 해소 조건
  (upstream pin bump) 명시
- docs/features/korean-privacy-terms.md 에 알려진 한계 절 추가
- skill-docs 테스트 2건 추가 (TDD: 실패 확인 후 구현)
- CLI 번들 동기화 + 스냅샷 갱신 + changeset(patch)

검증: 신규 테스트 2건 통과, lint·typecheck·validate-skills 통과,
워크스페이스 테스트 96건 통과, 루트 node 테스트 205/206
(1건은 Python 3.11+ 요구 store_longevity_mirror의 환경성 기존 실패,
clean dev 에서도 동일 재현).
2026-09-10 17:45:26 -07:00
Jeffrey (Dongkyu) Kim 9a340a05ad docs(bccard-eatpl-search): broaden restaurant triggers and hide internals
Widen the skill description so Korean restaurant and cafe lookups match it.
Instruct agents not to mention endpoints, proxy details, or field names in user-facing answers.

Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
2026-09-10 16:18:42 +09:00
Jeffrey (Dongkyu) Kim f2b7772dd2 Merge origin/dev into feat/bccard-eatpl-search
Keep bccard-eatpl-search on latest dev and resolve skill-count conflicts:
README 125, lookup 65, skillDirs 125, assetSkills 90, trademark-reviewed 43.

Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
2026-09-10 16:13:46 +09:00
Jeffrey (Dongkyu) Kim 9a1f7dd271 feat: lock eatpl relay bearer auth and result presentation
Require Authorization Bearer on the Lightsail relay and fail closed in
k-skill-proxy when the relay URL is set without BCCARD_EATPL_RELAY_TOKEN.
Skill output must show nationwide/local sales percentiles, expected hours,
and merUrl on every row.

Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
2026-09-10 15:07:23 +09:00
Jeffrey (Dongkyu) Kim f3fc31fbab Merge pull request #657 from HJC96/feature/656
feat(religious-facility-search): 교회·성당·사찰 거리순 조회 스킬 추가
2026-09-10 14:57:33 +09:00
Jeffrey (Dongkyu) Kim 359909a564 refactor(religious-facility-search): 공식 Kakao Local API(k-skill-proxy)로 transport 교체
m.map.kakao.com 모바일 웹 스크래핑(비공식, 구조 변경 시 파손 리스크)을
k-skill-proxy의 공식 Kakao Local keyword 검색으로 교체한다.

- anchor 해석과 시설 검색 모두 /v1/kakao-map/search/keyword 사용
- sort=distance + 공식 distance 필드 → haversine 직접 계산 제거
- category_name의 "종교" 노드 필터 유지 (써브웨이 명동성당점류 오탐 차단)
- --type 전체는 "종교시설" 단일 키워드가 교회·사찰을 놓쳐
  교회/성당/사찰 3쿼리 병합 + id dedupe, 토큰별 빈 결과는 격리
- --limit 상한 15 → 45 (15건/페이지 × 최대 3페이지)
- --radius 상한 20000 검증 추가 (Kakao Local API 상한)
- homepage는 Local API 미제공으로 null, place_url로 안내
- profiles에 proxy 추가, instruction/docs/sources 갱신
- 테스트를 mock 프록시 응답 기준 24개로 재작성

검증: unittest 24/24, npm run ci exit 0,
강남역/명동 성당/경주 절/온누리교회/성수동 전체 라이브 조회 확인
2026-09-08 19:24:13 +09:00
Jeffrey (Dongkyu) Kim 968a3bf854 fix(proxy-ops): run gpu01 watchdog on the real hostname
hostname -s on the production box is marker-multi-gpu-server-01, and
cron does not set KSKILL_PROXY_DEPLOY_HOST, so the watchdog and
trust-proxy default were no-ops. Accept that hostname, keep the cron
env contract, export the user-bus vars cron needs for systemctl, and
persist the proxy unit as Restart=always.

Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
2026-09-08 16:48:19 +09:00
jeffrey e01b94fd2e fix(proxy-ops): auto-recover gpu01 services after reboot (#658)
The 2026-08-29 gpu01 reboot left the public proxy (530) and dashboard
(502) dead for ~10 days. Only the Fastify proxy recovered, because the
deploy cron `restart`s it every run; the tunnel and Loki/Grafana/
Promtail stack used Restart=on-failure, which does not revive a clean
SIGTERM, and nothing else ever started them.

- dashboard systemd units: Restart=on-failure -> always,
  StartLimitIntervalSec=0
- commit the previously host-only cloudflared tunnel unit, hardened
  with Restart=always, StartLimitIntervalSec=0, and RequiresMountsFor=
  on the gpu02:/data NFS paths
- deploy cron: ensure_production_services() starts any watched service
  that is installed but inactive, on every run including SHA-noop runs
- document the watchdog and canonical unit locations

Closes #658
2026-09-08 16:15:33 +09:00
HJC96 2e07bf88cd feat(religious-facility-search): 종교시설 조회 스킬 추가 (#656)
동네·역명·랜드마크를 기준으로 주변 교회·성당·사찰을 거리순 조회하는
Python 스크립트 유형 스킬. 카카오 무인증 공개 표면 2단계를 사용하므로
사용자 API 키와 k-skill-proxy 경유가 모두 불필요하다.

- searchView HTML의 data-cid → place panel3 JSON으로 좌표·주소·연락처 확보
- category.name2 == "종교" 필터로 동명 카페·서점 오탐 제거
- 거리는 upstream 값 대신 기준점 좌표와 haversine으로 직접 계산
- 조회 결과는 필터 통과 수와 표시 수를 구분해 보고
- 예배·미사·법회 시간, 교단 소속, 좌표 입력은 미지원으로 명시
- --limit은 upstream 상한 15를 넘으면 명시적으로 거부
- 종교·교단의 우열 평가와 이단 판별을 하지 않음을 instruction에 고정

README에 종교 카테고리를 신설하고, 스킬 개수를 검증하는 카운터
4곳(README 총계, skill-docs.test.js, cli.test.js assetSkills,
runtime-action-audit 서두·lookup 집계)과 audit 카탈로그를 함께 갱신했다.

helper는 Python 표준 라이브러리만 사용하며 새 의존성이 없다.
2026-09-08 14:34:22 +09:00
Jeffrey (Dongkyu) Kim 5e59fc3e50 fix(komsa-ferry-info): reject unmapped filters and restore skill count
Drop dead --vessel-code/--route-code/--port-code flags that the official
MTIS allowlist does not accept, return 400 instead of silently caching
distinct queries together, expose komsaConfigured on /health, pin the
health rate limit, and correct the README skill count to 123.

Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
2026-09-05 17:51:15 +09:00
Jeffrey (Dongkyu) Kim 73f7d2f32d Merge remote-tracking branch 'origin/dev' into work/pr-632
# Conflicts:
#	README.md
#	docs/runtime-action-audit.md
#	packages/k-skill-cli/test/cli.test.js
2026-09-05 15:47:52 +09:00
Jeffrey (Dongkyu) Kim 98b7ee80ba refactor(rail): consolidate timetable lookup on Korail (#653)
* refactor(rail): unify KTX and SRT timetable skills

Plan: 578 unified railway timetable integration

* docs(rail): update consolidated skill count

Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>

* fix(rail): use Korail integrated timetable only

Plan: 578 unified railway timetable integration

* docs(rail): remove retired SRT references

Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>

---------

Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
2026-09-05 15:37:16 +09:00
Jeffrey (Dongkyu) Kim 8be24f2e49 fix(komsa-ferry-info): align MTIS requests with official API
Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
2026-09-05 12:22:19 +09:00
Jeffrey (Dongkyu) Kim 23153f05d1 chore(komsa-ferry-info): wire CLI metadata and docs 2026-08-29 03:46:50 +09:00
Jeffrey (Dongkyu) Kim de503db0d5 wip: scaffold consumer price safety skill 2026-08-29 03:35:15 +09:00
Jeffrey (Dongkyu) Kim 3fecd3acf6 fix: 소비자 안전 스킬 catalog 산출물 보완 2026-08-29 03:35:15 +09:00
Jeffrey (Dongkyu) Kim 61ac244fca fix: CGV 브라우저 대체 조회 안내 추가 2026-08-29 03:33:57 +09:00
Jeffrey (Dongkyu) Kim 60f85abd2c fix: CGV 봇 차단 실패 모드 문서화 2026-08-29 03:33:57 +09:00
Jeffrey (Dongkyu) Kim c873fa8ce2 feat: add BCcard eatpl restaurant search 2026-08-27 01:19:26 +09:00
Jeffrey (Dongkyu) Kim 8d0fac4466 fix: refresh generated skill audit counts 2026-08-25 15:29:27 +09:00
Jeffrey (Dongkyu) Kim 0878c74aa1 Merge origin/dev into government support survey 2026-08-25 15:26:49 +09:00
Jeffrey (Dongkyu) Kim 0d3e8573f2 docs: publish KAMIS and MOFA skill guides 2026-08-25 07:48:35 +09:00
Jeffrey (Dongkyu) Kim fda04c8e3d Merge remote-tracking branch 'origin/dev' into feat/government-support-survey-460
# Conflicts:
#	docs/runtime-action-audit.md
2026-08-25 04:52:37 +09:00
Jeffrey (Dongkyu) Kim a4c54b656a fix: register support survey across skill docs 2026-08-25 04:30:36 +09:00
Jeffrey (Dongkyu) Kim 7df0334865 Merge pull request #630 from NomaDamas/feat/animal-pharmacy-search-426
feat: 동물약국·동물용의약품 취급 약국 조회 스킬 추가
2026-08-25 03:29:58 +09:00
Jeffrey (Dongkyu) Kim 505cfd0118 feat: add animal pharmacy search skill 2026-08-25 02:54:32 +09:00
Jeffrey (Dongkyu) Kim 64e1b4b710 fix(seoul-weather-risk): clip query windows to ASK Seoul availability
Date-only --from/--to expands to a full KST day, which ASK Seoul rejects
when the serving window starts after midnight. Retry once with the
overlap, and surface available_from_at/available_to_at when there is none.
2026-08-24 17:33:40 +09:00
Jeffrey (Dongkyu) Kim 8453959bcf feat(proxy): host Coupang Partners product search 2026-08-22 00:34:38 +09:00
Jeffrey (Dongkyu) Kim 47667860a2 fix(proxy): scope trust proxy default to gpu01 production 2026-08-20 22:19:50 +09:00
Jeffrey (Dongkyu) Kim 6e8702307a Merge remote-tracking branch 'origin/dev' into feature/568
# Conflicts:
#	packages/k-skill-proxy/README.md
#	packages/k-skill-proxy/test/server.test.js
#	scripts/deploy-k-skill-proxy-gpu01.sh
#	scripts/skill-docs.test.js
2026-08-20 17:26:44 +09:00
Jeffrey (Dongkyu) Kim 23641eadb5 chore: remove yebigun-training skill (#611) 2026-08-19 23:22:51 +09:00
Jeffrey (Dongkyu) Kim 1555b6c2ed docs(skills): clarify medical lookup scope (#610) 2026-08-19 15:46:45 +09:00
Jeffrey (Dongkyu) Kim a47b21bc1e feat(proxy): publish privacy policy 2026-08-19 12:42:38 +09:00
Jeffrey (Dongkyu) Kim ca4c7d8390 fix: restore naming-house Hanja stroke counts (#601) 2026-08-18 15:35:23 +09:00
Jeffrey (Dongkyu) Kim af6de30a33 chore(skills): remove local-election-candidate-search (#602)
The local election cycle is over. Delete the skill source, helper package,
bundled CLI copy, snapshots, docs, and registry entries, and close the
related legal-review issue.
2026-08-18 15:34:53 +09:00
Jeffrey (Dongkyu) Kim 6c0a33496a Merge remote-tracking branch 'origin/dev' into feature/568-proxy-reliability
# Conflicts:
#	package.json
#	packages/k-skill-proxy/scripts/check-js.js
#	scripts/prepare-python-test-env.js
2026-08-17 11:28:33 +09:00
Jeffrey (Dongkyu) Kim 4b82040608 chore: rename toss-securities skill to toss-investment (#595)
Keep the official Toss Open API read-only client; only the skill id, package name, and docs paths change.
2026-08-17 11:25:23 +09:00
Jeffrey (Dongkyu) Kim f5e62818be docs(legal): add branded lookup disclaimers (#592) 2026-08-17 11:17:11 +09:00
Jeffrey (Dongkyu) Kim 0cd9654e71 Merge pull request #587 from ericpapa80/chore/glob-ci-scripts
chore: glob root lint/test/pack file lists
2026-08-16 23:32:29 +09:00
Jeffrey (Dongkyu) Kim 252d899baf Merge remote-tracking branch 'origin/dev' into review/pr-586
# Conflicts:
#	scripts/skill-docs.test.js
2026-08-16 23:31:31 +09:00
Jeffrey (Dongkyu) Kim ea9ec9dc9e test(runtime): keep action audit aligned 2026-08-16 23:06:14 +09:00
Jeffrey (Dongkyu) Kim 15272d47ef docs(kopis): classify runtime as lookup-only 2026-08-16 23:02:36 +09:00
Jeffrey (Dongkyu) Kim a7dc4ebe14 Merge origin/dev into chore/glob-ci-scripts 2026-08-16 22:53:23 +09:00
Jeffrey (Dongkyu) Kim 2c7a1f2478 Merge origin/dev into refactor/skill-local-helpers 2026-08-16 22:49:14 +09:00
Jeffrey (Dongkyu) Kim 9b0ebd4fcf Merge origin/dev into docs/missing-feature-pages 2026-08-16 22:48:33 +09:00
Jeffrey (Dongkyu) Kim 135e72e89d docs: correct lookup guide contracts 2026-08-16 22:42:59 +09:00
Jeffrey (Dongkyu) Kim 981593d6cf Merge pull request #582 from NomaDamas/feature/541-remove-lovebug-report
chore(skills): lovebug-report 스킬 제거
2026-08-16 22:37:22 +09:00