@uzysjung/agent-harness 26.171.0 → 26.172.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ko.md CHANGED
@@ -156,7 +156,7 @@ your-project/
156
156
 
157
157
  ## 지원하는 스택과 함께 제공하는 스킬
158
158
 
159
- 트랙은 개발 스택이나 업무 종류별로 묶어 둔 시작 구성이다. 표의 위쪽 9개가 개발 트랙, 아래쪽 3개가 업무 트랙이다. 트랙을 고르면 아래 외부 스킬과 도구가 미리 체크된다. 미리 체크되는 것은 모두 공식 저장소이거나, 출처와 인기도, 설치 경로를 확인해 고른 저장소다. 내용의 안전성이나 결과물의 품질까지 보증하지는 않는다([SECURITY.md](SECURITY.md)).
159
+ 트랙은 개발 스택이나 업무 종류별로 묶어 둔 시작 구성이다. 표의 위쪽 10개가 개발 트랙, 아래쪽 3개가 업무 트랙이다. 트랙을 고르면 아래 외부 스킬과 도구가 미리 체크된다. 미리 체크되는 것은 모두 공식 저장소이거나, 출처와 인기도, 설치 경로를 확인해 고른 저장소다. 내용의 안전성이나 결과물의 품질까지 보증하지는 않는다([SECURITY.md](SECURITY.md)).
160
160
 
161
161
  | 트랙 | 스택 | 미리 체크되는 외부 스킬·도구 |
162
162
  |---|---|---|
@@ -165,7 +165,8 @@ your-project/
165
165
  | `csr-fastify` | Vite + React + Fastify | `frontend-design`, `react-best-practices`, `shadcn-ui` |
166
166
  | `csr-fastapi` | Vite + React + FastAPI | `frontend-design`, `react-best-practices`, `shadcn-ui` |
167
167
  | `ssr-nextjs` | Next.js (App Router) | `frontend-design`, `react-best-practices`, `shadcn-ui` |
168
- | `ssr-htmx` | htmx + FastAPI | `frontend-design` |
168
+ | `ssr-htmx` | htmx + FastAPI (Python) + daisyUI | `frontend-design` |
169
+ | `ssr-htmx-fastify` | htmx + Fastify (Node) + daisyUI | `frontend-design` |
169
170
  | `data` | Python 데이터 작업 (DuckDB, PySide6) | `anthropic-data-plugin` |
170
171
  | `tooling` | 앱 스택 없는 Bash·Markdown 프로젝트 | 없음 |
171
172
  | `full` | 개발 트랙 전부와 문서 작업 | 위 항목 전부 + `anthropic-document-skills` |
@@ -173,13 +174,14 @@ your-project/
173
174
  | `project-management` | PM 업무 | 없음 |
174
175
  | `growth-marketing` | 그로스·콘텐츠 마케팅 | 없음 (`marketingskills` 선택 가능) |
175
176
 
176
- MCP 서버도 함께 들어간다. 모든 트랙에 `context7`(최신 라이브러리 문서)가 들어가고, 웹 트랙(`csr-*`, `ssr-*`, `full`)에는 Google 사용 통계를 끈 `chrome-devtools`가 더해진다. `csr-*`와 `ssr-htmx` 트랙에는 `railway-mcp-server`(Railway 원격 서버 — 처음 쓸 때 로그인한다)가, `csr-supabase`에는 `supabase`(Supabase 원격 서버 — 처음 쓸 때 로그인한다)가 더해진다. `full`은 둘 다 받는다. `ssr-nextjs`에서는 Railway MCP가 기본이 아니고, 직접 고르면 들어간다. Vercel·GitHub 공식 원격 서버(`vercel`, `github-mcp`)는 미리 체크되지 않는다 — `--with`로 더한다. 서버마다 위저드 3단계에 한 줄씩 보이고, 체크를 풀거나 `--without <이름>`(예: `--without context7`)을 주면 `.mcp.json`·Codex·OpenCode 에서 빠진다.
177
+ MCP 서버도 함께 들어간다. 모든 트랙에 `context7`(최신 라이브러리 문서)가 들어가고, 웹 트랙(`csr-*`, `ssr-*`, `full`)에는 Google 사용 통계를 끈 `chrome-devtools`가 더해진다. `csr-*`·`ssr-htmx`·`ssr-htmx-fastify` 트랙에는 `railway-mcp-server`(Railway 원격 서버 — 처음 쓸 때 로그인한다)가, `csr-supabase`에는 `supabase`(Supabase 원격 서버 — 처음 쓸 때 로그인한다)가 더해진다. `full`은 둘 다 받는다. `ssr-nextjs`에서는 Railway MCP가 기본이 아니고, 직접 고르면 들어간다. Vercel·GitHub 공식 원격 서버(`vercel`, `github-mcp`)는 미리 체크되지 않는다 — `--with`로 더한다. 서버마다 위저드 3단계에 한 줄씩 보이고, 체크를 풀거나 `--without <이름>`(예: `--without context7`)을 주면 `.mcp.json`·Codex·OpenCode 에서 빠진다.
177
178
 
178
179
  미리 체크되지는 않지만 3단계나 `--with <id>`로 더할 수 있는 것도 있다.
179
180
 
180
181
  - 프론트엔드·디자인: `web-design-guidelines`, `taste-skill`, `jakubkrehel-skills`, `preline`, `scroll-world`
181
182
  - 배포: `vercel-cli`, `netlify-cli`, `supabase-cli`, `railway-mcp-server`, `vercel`, `railway-skills`
182
183
  - 보안 리뷰: `security-guidance`, `claude-security`
184
+ - 구조 기반 코드 검색·린트 규칙: `ast-grep` (ast-grep CLI 별도 설치 필요)
183
185
  - 마케팅·재무: `marketingskills`, `finance-skills`
184
186
  - 발표·영상: `frontend-slides`, `marp-slide`, `hyperframes`, `remotion`, `gsap-skills` 등
185
187
  - 정해진 개발 절차가 필요한 팀: `openspec`, `bmad-method` ([WORKFLOWS.md](docs/WORKFLOWS.md)에서 비교)
package/README.md CHANGED
@@ -149,7 +149,7 @@ Plugins are a Claude Code feature, so only Claude Code gets them. Rules and skil
149
149
 
150
150
  ## Supported stacks and the skills that come with them
151
151
 
152
- A track is a starting setup for a dev stack or a kind of work: the top nine rows are dev tracks, the bottom three are work tracks. Picking a track pre-checks the external skills and tools below. Everything pre-checked comes from an official repository, or from one picked after checking its source, popularity, and install path. That does not vouch for the safety of its contents or the quality of what it produces ([SECURITY.md](SECURITY.md)).
152
+ A track is a starting setup for a dev stack or a kind of work: the top ten rows are dev tracks, the bottom three are work tracks. Picking a track pre-checks the external skills and tools below. Everything pre-checked comes from an official repository, or from one picked after checking its source, popularity, and install path. That does not vouch for the safety of its contents or the quality of what it produces ([SECURITY.md](SECURITY.md)).
153
153
 
154
154
  | Track | Stack | Pre-checked external skills and tools |
155
155
  |---|---|---|
@@ -158,7 +158,8 @@ A track is a starting setup for a dev stack or a kind of work: the top nine rows
158
158
  | `csr-fastify` | Vite + React + Fastify | `frontend-design`, `react-best-practices`, `shadcn-ui` |
159
159
  | `csr-fastapi` | Vite + React + FastAPI | `frontend-design`, `react-best-practices`, `shadcn-ui` |
160
160
  | `ssr-nextjs` | Next.js (App Router) | `frontend-design`, `react-best-practices`, `shadcn-ui` |
161
- | `ssr-htmx` | htmx + FastAPI | `frontend-design` |
161
+ | `ssr-htmx` | htmx + FastAPI (Python) + daisyUI | `frontend-design` |
162
+ | `ssr-htmx-fastify` | htmx + Fastify (Node) + daisyUI | `frontend-design` |
162
163
  | `data` | Python data work (DuckDB, PySide6) | `anthropic-data-plugin` |
163
164
  | `tooling` | Bash and Markdown projects with no app stack | None |
164
165
  | `full` | Every dev track, plus documents | All of the above, plus `anthropic-document-skills` |
@@ -166,13 +167,14 @@ A track is a starting setup for a dev stack or a kind of work: the top nine rows
166
167
  | `project-management` | PM work | None |
167
168
  | `growth-marketing` | Growth and content marketing | None (`marketingskills` available) |
168
169
 
169
- MCP servers come too. Every track gets `context7` (current library docs). Web tracks (`csr-*`, `ssr-*`, `full`) add `chrome-devtools`, with Google's usage statistics turned off. The `csr-*` and `ssr-htmx` tracks add `railway-mcp-server` (Railway's remote server — you sign in on first use), and `csr-supabase` adds `supabase` (Supabase's remote server — you sign in on first use). `full` gets both. On `ssr-nextjs`, Railway MCP is not a default; pick it if you want it. Vercel's and GitHub's official remote servers (`vercel`, `github-mcp`) are never pre-checked — add them with `--with`. Each server is a row in step 3 of the wizard: uncheck it or pass `--without <name>` (e.g. `--without context7`) to leave it out of `.mcp.json`, Codex and OpenCode.
170
+ MCP servers come too. Every track gets `context7` (current library docs). Web tracks (`csr-*`, `ssr-*`, `full`) add `chrome-devtools`, with Google's usage statistics turned off. The `csr-*`, `ssr-htmx` and `ssr-htmx-fastify` tracks add `railway-mcp-server` (Railway's remote server — you sign in on first use), and `csr-supabase` adds `supabase` (Supabase's remote server — you sign in on first use). `full` gets both. On `ssr-nextjs`, Railway MCP is not a default; pick it if you want it. Vercel's and GitHub's official remote servers (`vercel`, `github-mcp`) are never pre-checked — add them with `--with`. Each server is a row in step 3 of the wizard: uncheck it or pass `--without <name>` (e.g. `--without context7`) to leave it out of `.mcp.json`, Codex and OpenCode.
170
171
 
171
172
  More external assets are never pre-checked but can be added at step 3 or with `--with <id>`:
172
173
 
173
174
  - Frontend and design: `web-design-guidelines`, `taste-skill`, `jakubkrehel-skills`, `preline`, `scroll-world`
174
175
  - Deployment: `vercel-cli`, `netlify-cli`, `supabase-cli`, `railway-mcp-server`, `vercel`, `railway-skills`
175
176
  - Security review: `security-guidance`, `claude-security`
177
+ - Structural code search and lint rules: `ast-grep` (needs the ast-grep CLI installed)
176
178
  - Marketing and finance: `marketingskills`, `finance-skills`
177
179
  - Slides and video: `frontend-slides`, `marp-slide`, `hyperframes`, `remotion`, `gsap-skills`, and more
178
180
  - Teams that want a fixed development process: `openspec`, `bmad-method` (compared in [WORKFLOWS.md](docs/WORKFLOWS.md))
@@ -47,6 +47,8 @@ var TRACKS = [
47
47
  "csr-fastify",
48
48
  "csr-fastapi",
49
49
  "ssr-htmx",
50
+ // #820 — htmx 의 Node 백엔드. `ssr-htmx`(FastAPI) 의 id 는 설치 기록이 갖고 있어 그대로 두고 옆에 더했다.
51
+ "ssr-htmx-fastify",
50
52
  "ssr-nextjs",
51
53
  "data",
52
54
  "executive",
@@ -448,7 +450,7 @@ var EXTERNAL_ASSETS = [
448
450
  }
449
451
  },
450
452
  // #709 (ADR-101) — Railway MCP 서버의 **선택** 경로. 서버 정의는 트랙 표(`templates/track-mcp-map.tsv`)의 같은 이름
451
- // 행 하나다(key === 행 이름). 그 행의 패턴이 기본 트랙(csr-* · ssr-htmx · full)을 정하고, 이 항목은 그 밖의 트랙
453
+ // 행 하나다(key === 행 이름). 그 행의 패턴이 기본 트랙(csr-* · ssr-htmx · ssr-htmx-fastify · full)을 정하고, 이 항목은 그 밖의 트랙
452
454
  // (ssr-nextjs 등)에서 위저드 체크 · `--with` 로 고르게 한다. experimental 이라 조건으로는 미리 체크되지 않는다.
453
455
  // #712 (ADR-106) — 행이 Railway 공식 원격 서버(`https://mcp.railway.com`, OAuth)로 바뀌었다. 이름 · 키 id 는 그대로라 기록이
454
456
  // 이어져 update 가 같은 키를 갈아 끼운다.
@@ -456,7 +458,7 @@ var EXTERNAL_ASSETS = [
456
458
  id: "railway-mcp-server",
457
459
  tier: "experimental",
458
460
  // railwayapp/cli 621★ (원격 서버에 공개 저장소가 따로 없다 — 같은 벤더의 CLI 를 감시, REPO_OVERRIDE)
459
- description: "Railway's official remote MCP (https://mcp.railway.com, signs in with OAuth on first use) in .mcp.json, Codex and OpenCode \u2014 default on csr-* \xB7 ssr-htmx \xB7 full; check it to add it on any other track",
461
+ description: "Railway's official remote MCP (https://mcp.railway.com, signs in with OAuth on first use) in .mcp.json, Codex and OpenCode \u2014 default on csr-* \xB7 ssr-htmx \xB7 ssr-htmx-fastify \xB7 full; check it to add it on any other track",
460
462
  category: "backend",
461
463
  source: "railwayapp",
462
464
  condition: { kind: "opt-in" },
@@ -658,6 +660,20 @@ var EXTERNAL_ASSETS = [
658
660
  skill: "preline-theme-generator"
659
661
  }
660
662
  },
663
+ // #822 (사용자 결정 2026-10-14) — ast-grep 공식 스킬. 언어에 매이지 않아 트랙에 묶지 않고 opt-in.
664
+ // 벤더 README 가 "설치하면 발견될 뿐 선호되지 않는다"고 적고, 기본으로 쓰게 하려면 상주 지시를 권한다 — 관측 없는
665
+ // 상주는 넣지 않으므로 원하는 사람이 고르는 자리에만 둔다. 스킬 파일에 CLI 설치 안내가 없어 description 에 적는다.
666
+ // 리포에 스킬이 2종(ast-grep · ast-grep-outline)이라 하나만 받는다. #820 의 htmx-fastapi-ui 룰은 이 스킬 없이 동작한다.
667
+ {
668
+ id: "ast-grep",
669
+ tier: "experimental",
670
+ // ast-grep/agent-skill 893★ (license none — README "follows ast-grep's MIT"; 본체 ast-grep/ast-grep 16k MIT, 2026-10-14)
671
+ description: "ast-grep \u2014 write and test structural (AST) search and lint rules across languages (ast-grep official). Needs the ast-grep CLI installed separately; fires reliably only when you ask for ast-grep",
672
+ category: "dev-tools",
673
+ source: "ast-grep",
674
+ condition: { kind: "opt-in" },
675
+ method: { kind: "skill", source: "ast-grep/agent-skill", skill: "ast-grep" }
676
+ },
661
677
  // === dev tools (has_dev_track) ===
662
678
  // v26.110.0 (ADR-039) — security-guidance: 매 편집 패턴 경고 + LLM diff 리뷰 (훅 12파일,
663
679
  // Python + Agent SDK 의존). 상시 훅 = 매 편집 비용 + 폭발 반경 — 실측 전 기본설치 금지
@@ -1123,7 +1139,7 @@ import { dirname as dirname3, join as join4 } from "path";
1123
1139
  // package.json
1124
1140
  var package_default = {
1125
1141
  name: "@uzysjung/agent-harness",
1126
- version: "26.171.0",
1142
+ version: "26.172.0",
1127
1143
  description: "Curate vetted AI-coding skills & plugins by your tech stack \u2014 install only what you need, across Claude Code, Codex, OpenCode & Antigravity",
1128
1144
  type: "module",
1129
1145
  publishConfig: {
@@ -1866,7 +1882,8 @@ var TRACK_DISPLAY_NAMES = {
1866
1882
  "csr-supabase": "CSR Supabase",
1867
1883
  "csr-fastify": "CSR Fastify",
1868
1884
  "csr-fastapi": "CSR FastAPI",
1869
- "ssr-htmx": "SSR HTMX",
1885
+ "ssr-htmx": "SSR htmx + FastAPI",
1886
+ "ssr-htmx-fastify": "SSR htmx + Fastify",
1870
1887
  "ssr-nextjs": "SSR Next.js",
1871
1888
  data: "Data",
1872
1889
  executive: "Executive",
@@ -2093,17 +2110,23 @@ var onTracks = (pattern) => (s) => anyTrack(s.tracks, pattern);
2093
2110
  var COMMON_RULES = ["git-policy", "change-management", "doc-governance"];
2094
2111
  var DEV_RULES = ["test-policy", "ship-checklist"];
2095
2112
  var UI_RULES = ["ui-components"];
2113
+ var REACT_UI_TRACKS = "csr-*|ssr-nextjs|full";
2096
2114
  var TRACK_RULES = {
2097
2115
  base: [],
2098
2116
  // #456 — 공통 룰만. cli-development 는 tooling·full 전용
2099
2117
  "csr-supabase": [],
2100
2118
  "csr-fastify": [],
2101
2119
  "csr-fastapi": [],
2102
- "ssr-htmx": [],
2120
+ // #820 — htmx 화면 기술(Tailwind v4 + daisyUI)과 그 스택에서 실제로 도는 린트. 백엔드마다 템플릿 형식이
2121
+ // 달라 린트가 갈린다(Jinja = ast-grep · 서버 JSX = @shadcn/lint) — 실측 = `docs/plans/820-spike/`. `full` 은 아래.
2122
+ "ssr-htmx": ["htmx-fastapi-ui"],
2123
+ "ssr-htmx-fastify": ["htmx-fastify-ui"],
2103
2124
  "ssr-nextjs": [],
2104
2125
  data: [],
2105
2126
  executive: [],
2106
2127
  tooling: ["cli-development"],
2128
+ // #820 — htmx 룰 둘은 `full` 에 넣지 않는다. OpenCode 가 섞인 설치는 룰을 AGENTS.md 본문에 인라인하는데, full 의 렌더가
2129
+ // Antigravity 상한(24,000 B)을 넘는다(22,322 → 24,455 B, `agents-md-size-budget`). htmx 를 쓰면 그 트랙을 함께 고른다.
2107
2130
  full: ["cli-development"],
2108
2131
  // v0.5.0 — executive-style baselines (no dev rules; common rules only).
2109
2132
  "project-management": [],
@@ -2116,7 +2139,7 @@ function resolveRules(spec) {
2116
2139
  set.add(r);
2117
2140
  }
2118
2141
  }
2119
- if (hasUiTrack(spec.tracks)) {
2142
+ if (anyTrack(spec.tracks, REACT_UI_TRACKS)) {
2120
2143
  for (const r of UI_RULES) {
2121
2144
  set.add(r);
2122
2145
  }
@@ -2656,4 +2679,4 @@ export {
2656
2679
  CATEGORIES,
2657
2680
  CATEGORY_TITLES
2658
2681
  };
2659
- //# sourceMappingURL=chunk-U4X4Z333.js.map
2682
+ //# sourceMappingURL=chunk-T2HBTG32.js.map