k-skill/scripts
Jeffrey (Dongkyu) Kim d7aca1bcbe
Merge dev into main (#197)
* fix(toss-securities): clarify session expiry and quote 403 handling

* Clarify toss empty-output session expiry

Portfolio and watchlist reads can exit successfully with empty payloads when the stored Toss session has expired. The empty-output path now verifies the session before JSON parsing and only promotes confirmed invalid auth doctor data into TossSessionExpiredError.

Constraint: Scope is limited to toss-securities issue #126 follow-up on PR #192

Rejected: Treat auth doctor execution failures as expired sessions | unsupported or failing doctor output is inconclusive without parsed session.valid=false

Confidence: high

Scope-risk: narrow

Directive: Keep empty-result session expiry classification tied to explicit auth doctor confirmation

Tested: npm run test --workspace toss-securities; npm run lint --workspace toss-securities; npm run ci; manual mock tossctl blank stdout invalid/inconclusive doctor checks

* Avoid false session-expiry labels for validation errors

The toss wrapper now treats bare validation_error text as an upstream command failure instead of a session-expired signal. Structured auth doctor JSON remains the source of truth for empty portfolio/watchlist invalid-session promotion, while known stored-session-invalid stderr still maps to TossSessionExpiredError.\n\nConstraint: PR #192 follow-up must stay scoped to issue #126 toss-securities behavior.\nRejected: Keep validation_error in the global regex | it mislabels auth doctor transport failures and quote 403 validation errors as session expiry.\nConfidence: high\nScope-risk: narrow\nDirective: Do not broaden the free-text session classifier without regressions for auth doctor and quote upstream validation failures.\nTested: npm run lint --workspace toss-securities; npm run test --workspace toss-securities; npm run ci; manual mock tossctl validation_error checks; architect verification CLEAR\nNot-tested: Live tossctl network/auth session against real Toss upstream

* Align court auction lookup with monthly site search (#196)

The court auction notice page posts a YYYYMM search key from its 조회 button and returns a month of rows. Keep day inputs as a compatibility filter over the monthly response and normalize the current nested detail payload shape.

Constraint: courtauction.go.kr has no public API and blocks bursty automated calls.

Rejected: querying every day independently | the upstream search surface is month-based and day calls return false empty results.

Confidence: high

Scope-risk: narrow

Directive: Preserve the site-observed YYYYMM notice search contract unless the PGJ143M01 XHR changes again.

Tested: npm --workspace packages/court-auction-notice-search test; npm run ci; live 서울중앙지방법원 2026-05 notice/detail smoke lookup.

Not-tested: PR CI after push.

Co-authored-by: OmX <omx@oh-my-codex.dev>

* Guide crawler skills toward reusable discovery (#195)

* chore: version packages

* Guide crawler skills toward reusable discovery

Constraint: User requested insane-search-style guidance for future crawling k-skills without unrelated implementation changes.
Rejected: Adding crawler code or a standalone template | too broad for a docs guidance change and risks dependency creep.
Confidence: high
Scope-risk: narrow
Directive: Keep site-specific access details inside individual skills after a site-agnostic discovery pass.
Tested: npm run ci
Not-tested: Live crawler behavior; documentation-only change.

* Clarify crawler skill discovery guidance

Constraint: Crawling k-skills need site-dependent recipes, but should derive them through a reusable discovery pass.
Rejected: Leaving guidance only in docs/adding-a-skill.md | AGENTS.md and CLAUDE.md also guide future agents.
Confidence: high
Scope-risk: narrow
Directive: Use site-agnostic discovery to find, then explicitly package, the target site's stable access path.
Tested: npm run ci
Not-tested: Live crawler behavior; documentation-only change.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Ground corporate registration guidance in official form sources

Keep the consulting skill focused on draft/checklist support while pointing users to current IROS and law.go.kr form sources for submission-ready artifacts.

Constraint: official registry forms can change outside the repository and must be re-downloaded at use time

Rejected: committing copied official HWP/HWPX/PDF forms | they would become stale and risk misleading users

Confidence: high

Scope-risk: narrow

Directive: do not treat Markdown templates as substitutes for official registry submission forms

Tested: npm test

* Ground incorporation drafting in real HWP forms

Bundle official court incorporation forms plus public startup incorporation attachments, and make rhwp-filled HWP outputs the default drafting path for the corporate-registration skill. Replace the listed-company articles reference with a startup-suitable Ministry of Justice stock-company form and record source manifests for bundled binaries.

Constraint: user requires actual sourced HWP templates, not generated placeholder binaries.
Rejected: markdown-only drafting | it cannot produce submission-shaped Korean registry forms.
Rejected: listed-company standard articles as the default reference | it is mismatched for typical startup incorporation.
Confidence: high
Scope-risk: moderate
Directive: keep bundled HWP forms source-backed, sanitized, and edited only through copied working files.
Tested: node --test scripts/skill-docs.test.js; npm run lint; k-skill-rhwp info on bundled HWP files; kordoc conversion spot checks.
Not-tested: manual opening every HWP in Hancom Office and live registry submission.
Co-authored-by: OmX <omx@oh-my-codex.dev>

* Streamline corporate registration forms workflow

Prioritize saved HWP forms for ordinary stock-company promoter incorporations, make required court-registry receipts and director identity certificates explicit, and remove the redundant markdown articles template so the skill stays HWP-first.

Constraint: 법원등기소 기준 체크리스트 must include fee receipts, director seal/signature certificates, and resident-record documents.

Rejected: Keeping a separate markdown articles template | duplicated the stored HWP articles workflow and encouraged non-HWP drafting.

Confidence: high

Scope-risk: narrow

Directive: Keep corporate-registration-consulting focused on stored HWP form copies and explicit issued-document checklists.

Tested: node --test --test-name-pattern 'corporate-registration-consulting' scripts/skill-docs.test.js; node --check scripts/skill-docs.test.js; ./scripts/validate-skills.sh; git diff --check

Not-tested: Full npm run ci was not run because this is a skill documentation/template refactor, not release or package automation.

---------

Co-authored-by: galvaomica <galvaomica@galvaomicaui-MacBookAir.local>
Co-authored-by: OmX <omx@oh-my-codex.dev>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-02 23:51:59 +09:00
..
fixtures Merge pull request #122 from NomaDamas/feature/#120 2026-04-16 13:18:28 +09:00
build-region-codes.js Merge dev into main: new skills & proxy enhancements (#72) 2026-04-06 17:44:23 +09:00
check-setup.sh Replace sops+age encryption with plain dotenv and agent-native credential resolution 2026-03-30 22:12:04 +09:00
fine_dust.py Replace sops+age encryption with plain dotenv and agent-native credential resolution 2026-03-30 22:12:04 +09:00
geeknews_search.py Add a repeatable GeekNews lookup path without unofficial APIs 2026-04-13 00:16:35 +09:00
k_skill_cleaner.py Align cleaner helper contract with selective installs 2026-04-28 17:50:54 +09:00
kakaotalk_mac.py Feature/#121 (#127) 2026-04-18 01:08:06 +09:00
korean_character_count.js Standardize Korean text counts for form-limited writing 2026-04-08 22:55:31 +09:00
korean_spell_check.py Merge dev into main: new skills & proxy enhancements (#72) 2026-04-06 17:44:23 +09:00
ktx_booking.py fix(ktx-booking): make korail2 fallback TrainType import-safe 2026-04-30 01:18:46 +09:00
mfds_drug_safety.py Ship interview-first MFDS safety skills for drugs and food 2026-04-08 22:23:14 +09:00
mfds_food_safety.py Ship interview-first MFDS safety skills for drugs and food 2026-04-08 22:23:14 +09:00
patent_search.py Sync dev → main: 84 commits incl. korea-weather, korean-stock-search, korean-patent-search, bunjang-search (#80) 2026-04-08 21:13:55 +09:00
run-k-skill-proxy.sh Replace sops+age encryption with plain dotenv and agent-native credential resolution 2026-03-30 22:12:04 +09:00
sillok_search.py Merge dev into main: new skills & proxy enhancements (#72) 2026-04-06 17:44:23 +09:00
skill-docs.test.js Merge dev into main (#197) 2026-05-02 23:51:59 +09:00
subway_lost_property.py Add an official subway lost-property guidance path 2026-04-10 12:05:50 +09:00
test_coupang_partners_mcp_wrapper.py Drop non-allowlisted coupang-mcp-fallback recommendation from hosted fallback docs 2026-04-21 00:38:50 +09:00
test_fine_dust.py Make the fine-dust proxy easier to consume than the upstream APIs 2026-03-28 17:14:18 +09:00
test_geeknews_search.py Add a repeatable GeekNews lookup path without unofficial APIs 2026-04-13 00:16:35 +09:00
test_k_skill_cleaner.py Clarify cleaner usage evidence boundaries 2026-04-28 18:08:17 +09:00
test_kakaotalk_mac.py Feature/#121 (#127) 2026-04-18 01:08:06 +09:00
test_korean_character_count.js Preserve documented Korean count semantics in edge-case inputs 2026-04-08 23:28:42 +09:00
test_korean_slang_writing.py korean-slang-writing (#133): harden extractor with numbered-h2 gate + category-nav strip 2026-04-22 14:18:42 +09:00
test_korean_spell_check.py Merge dev into main: new skills & proxy enhancements (#72) 2026-04-06 17:44:23 +09:00
test_ktx_booking.py Feature/#171 (#191) 2026-04-30 19:58:55 +09:00
test_mfds_drug_safety.py Route MFDS drug-safety and food-safety lookups through k-skill-proxy 2026-04-14 00:07:18 +09:00
test_mfds_food_safety.py Route MFDS drug-safety and food-safety lookups through k-skill-proxy 2026-04-14 00:07:18 +09:00
test_naver_blog_search.py feat: 네이버 블로그 리서치 스킬 추가 (#107) 2026-04-13 00:06:18 +09:00
test_patent_search.py Sync dev → main: 84 commits incl. korea-weather, korean-stock-search, korean-patent-search, bunjang-search (#80) 2026-04-08 21:13:55 +09:00
test_sillok_search.py Merge dev into main: new skills & proxy enhancements (#72) 2026-04-06 17:44:23 +09:00
test_subway_lost_property.py Keep LOST112 curl guidance usable under live latency 2026-04-10 13:01:01 +09:00
test_zipcode_search.py Keep the zipcode helper directly executable 2026-04-10 10:48:00 +09:00
validate-skills.sh Add Korean scholarship search skill and reporting workflow (#116) 2026-04-16 14:58:58 +09:00
zipcode_search.py Keep the zipcode helper directly executable 2026-04-10 10:48:00 +09:00