diff --git a/README.md b/README.md index a3f7232..d55b385 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ Python License Docs + Tests + Hancom open

@@ -38,9 +40,8 @@ | ๐Ÿ”Œ MCP ์„œ๋ฒ„ | [`hwpx-mcp-server`](https://github.com/airmang/hwpx-mcp-server) | MCP ํด๋ผ์ด์–ธํŠธ(Claude Desktop, VS Code ๋“ฑ)์—์„œ HWPX ์กฐ์ž‘ | | ๐ŸŽฏ ์—์ด์ „ํŠธ ์Šคํ‚ฌ | [`hwpx-plugin`](https://github.com/airmang/hwpx-plugins) | ์—์ด์ „ํŠธ๊ฐ€ HWPX๋ฅผ ๋ฐ”๋กœ ์“ฐ๊ฒŒ ํ•ด์ฃผ๋Š” first-party ํ”Œ๋Ÿฌ๊ทธ์ธยท์Šคํ‚ฌ ๋ฒˆ๋“ค | -`python-hwpx`๋Š” HWPX ํŒŒ์‹ฑยทํŽธ์ง‘ยท์ƒ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ์ฝ”์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋ฉฐ, -`hwpx-mcp-server`์™€ `hwpx-plugin`์€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ง์ ‘ ์œ ์ง€๋ณด์ˆ˜ํ•˜๋Š” first-party ์—ฐ๋™ ๊ตฌ์„ฑ์š”์†Œ์ž…๋‹ˆ๋‹ค. -โ€œfirst-partyโ€๋Š” ํ”„๋กœ์ ํŠธ ์œ ์ง€๋ณด์ˆ˜ ๊ด€๊ณ„๋ฅผ ๋œปํ•˜๋ฉฐ, ํ•œ์ปด ๋˜๋Š” ์ œ3์ž์˜ ๊ณต์‹ ์ธ์ฆ์„ ๋œปํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +`hwpx-mcp-server`์™€ `hwpx-plugin`์€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ง์ ‘ ์œ ์ง€๋ณด์ˆ˜ํ•˜๋Š” first-party ์—ฐ๋™ +๊ตฌ์„ฑ์š”์†Œ์ž…๋‹ˆ๋‹ค(์œ ์ง€๋ณด์ˆ˜ ๊ด€๊ณ„๋ฅผ ๋œปํ•˜๋ฉฐ, ํ•œ์ปด ๋“ฑ ์™ธ๋ถ€ ๊ธฐ๊ด€์˜ ์ธ์ฆ์„ ๋œปํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค). ํ˜„์žฌ PyPI ๊ณต๊ฐœ ๋ฆด๋ฆฌ์Šค๋Š” `python-hwpx 3.7.0`์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜ `pip install python-hwpx`๋กœ ์ด ๋ฆด๋ฆฌ์Šค๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. @@ -64,6 +65,11 @@ export๋Š” ํ•œ์ปด ์ž์ฒด๊ฐ€ ๊ฑฐ๋ถ€ โ€” ์‹ค์ธก ํ•œ๊ณ„๋กœ ๋ฐœํ–‰) + ๋ฏธ๊ฒ€์ฆ 17๊ฑด - wild ๊ณต๊ฐœ ์–‘์‹ ์ฑ„์›€์€ ๊ตฌ์กฐ๊ฒฐํ•จ ํ”ฝ์Šค ํ›„ **๋ฌด์Œ ์„œ์‹ํŒŒ๊ดด 16.7%**(ํŒ์ • 66์กฐํ•ฉ, ๋ชป ๋‹ด๋Š” ํƒ€๊นƒ์€ typed ๊ฑฐ๋ถ€ 35๊ฑดยท์‚ฐ์ถœ๋ถ„ pass 17/28) โ€” **๋‚ฎ์€ ์ˆซ์ž๋„ ๊ทธ๋Œ€๋กœ ๋ฐœํ–‰**ํ•˜๊ณ  ์ž”์—ฌ(ํŽ˜์ด์ง€ ๋ฆฌํ”Œยทํ‘œ shape)๋ฅผ ๋ช…๋ช…ํ•ฉ๋‹ˆ๋‹ค +

+ python-hwpx๊ฐ€ ๋‚จ๊ธด ๋ณ€๊ฒฝ์ถ”์ ๊ณผ AI ์—์ด์ „ํŠธ ๋ฉ”๋ชจ๊ฐ€ ์‹ค์ œ ํ•œ/๊ธ€์—์„œ ์—ด๋ฆฐ ํ™”๋ฉด +

+

python-hwpx๋กœ ์ž‘์„ฑํ•œ ๋ณ€๊ฒฝ์ถ”์ (์ทจ์†Œ์„ ยท์‚ฝ์ž…)๊ณผ AI ์—์ด์ „ํŠธ ๋ฉ”๋ชจ โ€” ์‹ค์ œ ํ•œ/๊ธ€์—์„œ ์—ฐ ํ™”๋ฉด์ž…๋‹ˆ๋‹ค.

+ > ์ด ์ˆซ์ž๋“ค์€ *์ƒ์„ฑ๋ฌผ ์ˆ˜์šฉ๋ฅ * ์ถ•์ž…๋‹ˆ๋‹ค(์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ํŒŒ์ผ์„ ์‹ค์ œ ํ•œ์ปด์ด ๋ฐ›์•„๋“ค์ด๋Š”๊ฐ€). > ๋ฌธ์„œ *ํŒŒ์‹ฑ recall*๊ณผ๋Š” ๋‹ค๋ฅธ ์ถ•์ด๋ฏ€๋กœ ํŒŒ์„œ ํ”„๋กœ์ ํŠธ ์ˆ˜์น˜์™€ ๋ณ‘์น˜ ๋น„๊ตํ•˜์ง€ ๋งˆ์„ธ์š”. @@ -256,6 +262,11 @@ Unsupported-but-preserved / Unsupported-and-rejected**. ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ, ๊ธฐ๋Šฅ ์ œ์•ˆ, PR ๋ชจ๋‘ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. +- **[help wanted ์ด์Šˆ](https://github.com/airmang/python-hwpx/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)** โ€” ์ง€๊ธˆ ๋“ค์–ด์˜ค๊ธฐ ์ข‹์€ ์ž…๊ตฌ์ž…๋‹ˆ๋‹ค. ์‹œ์ž‘ ์ „์— ์ด์Šˆ์— ์ฝ”๋ฉ˜ํŠธ๋กœ ๋ฐฉํ–ฅ์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š”. +- **[๋งˆ์ผ์Šคํ†ค](https://github.com/airmang/python-hwpx/milestones)** โ€” ๊ณต๊ฐœ ๋กœ๋“œ๋งต์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๊ฐ€ ์–ด๋””๋กœ ๊ฐ€๋Š”์ง€ ์—ฌ๊ธฐ์„œ ๋ณด์ž…๋‹ˆ๋‹ค. +- **[Discussions](https://github.com/airmang/python-hwpx/discussions)** โ€” ์งˆ๋ฌธยท์•„์ด๋””์–ด๋Š” ์ด์Šˆ ๋Œ€์‹  ์—ฌ๊ธฐ๋กœ. +- **[๋‚ด๋ถ€ ์‹ค์ „ ๊ฐ€์ด๋“œ](docs/internals/)** โ€” HWPX ๋‚ด๋ถ€ ๊ตฌ์กฐ๊ฐ€ ์ฒ˜์Œ์ด๋ผ๋ฉด ์—ฌ๊ธฐ๋ถ€ํ„ฐ. ๊ฐœ๋ฐœ ํ๋ฆ„์€ [CONTRIBUTING.md](CONTRIBUTING.md)์— ์žˆ์Šต๋‹ˆ๋‹ค. + ```bash git clone https://github.com/airmang/python-hwpx.git cd python-hwpx diff --git a/README_EN.md b/README_EN.md index 6235806..0662080 100644 --- a/README_EN.md +++ b/README_EN.md @@ -8,6 +8,8 @@ Python License Docs + Tests + Hancom open

@@ -40,13 +42,11 @@ | ๐Ÿ”Œ MCP server | [`hwpx-mcp-server`](https://github.com/airmang/hwpx-mcp-server) | Manipulate HWPX from MCP clients (Claude Desktop, VS Code, etc.) | | ๐ŸŽฏ Agent skill | [`hwpx-plugin`](https://github.com/airmang/hwpx-plugins) | First-party plugin / skill bundle that lets agents use HWPX directly | -`python-hwpx` is the core library providing HWPX parsing, editing, and generation, -while `hwpx-mcp-server` and `hwpx-plugin` are first-party integration components -maintained directly by the same project. -"First-party" refers to the project's maintenance relationship; it does not imply -official certification by Hancom or any third party. +`hwpx-mcp-server` and `hwpx-plugin` are first-party integration components maintained +directly by the same project ("first-party" describes the maintenance relationship, +not certification by Hancom or any third party). -The current public PyPI release is `python-hwpx 3.6.0`. A plain +The current public PyPI release is `python-hwpx 3.7.0`. A plain `pip install python-hwpx` installs this release. The current package classifier is `Development Status :: 3 - Alpha`. This classifier reflects the maturity of the API and product; it does not stand in for the public @@ -70,6 +70,11 @@ real Hancom 12.0.0.3288 COM/GUI oracle; details and caveats in the limitation) + 17 unverified - Wild-form filling after the structural-defect fix: **silent layout breakage 16.7%** (66 judged combos; impossible targets are 35 typed refusals, produced fills pass 17/28) โ€” **we publish the low numbers as-is** and name the residual (page ripple, table shape) +

+ Tracked changes and AI-agent memos written by python-hwpx, opened in real Hancom Office +

+

Tracked changes (strikethrough/insertion) and AI-agent margin memos written by python-hwpx โ€” opened in real Hancom Office.

+ > These numbers are on the *output acceptance* axis (does real Hancom accept the files we produce). > This is a different axis from document *parsing recall*, so do not compare it side by side with parser-project figures. @@ -266,6 +271,11 @@ Unsupported-but-preserved / Unsupported-and-rejected**. Bug reports, feature proposals, and PRs are all welcome. +- **[help-wanted issues](https://github.com/airmang/python-hwpx/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)** โ€” good entry points right now; please leave a comment on the issue before starting. +- **[Milestones](https://github.com/airmang/python-hwpx/milestones)** โ€” the public roadmap; see where the project is heading. +- **[Discussions](https://github.com/airmang/python-hwpx/discussions)** โ€” questions and ideas go here instead of the issue tracker. +- **[Internals field guide](docs/internals/)** โ€” start here if HWPX internals are new to you; the development workflow is in [CONTRIBUTING.md](CONTRIBUTING.md). + ```bash git clone https://github.com/airmang/python-hwpx.git cd python-hwpx diff --git a/docs/_static/badge-hancom-open.json b/docs/_static/badge-hancom-open.json new file mode 100644 index 0000000..1b6db63 --- /dev/null +++ b/docs/_static/badge-hancom-open.json @@ -0,0 +1 @@ +{"schemaVersion": 1, "label": "Hancom open", "message": "476/476", "color": "brightgreen", "cacheSeconds": 3600} diff --git a/docs/images/redline-hancom.png b/docs/images/redline-hancom.png new file mode 100644 index 0000000..39c7826 Binary files /dev/null and b/docs/images/redline-hancom.png differ