@uzysjung/agent-harness 26.158.0 → 26.159.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 +1 -1
- package/README.md +1 -1
- package/dist/{chunk-HHCNPPGS.js → chunk-FTL34NT4.js} +49 -289
- package/dist/chunk-FTL34NT4.js.map +1 -0
- package/dist/index.js +11 -40
- package/dist/index.js.map +1 -1
- package/dist/trust-tier-drift.js +1 -1
- package/package.json +1 -2
- package/templates/agents/strategist.md +10 -0
- package/dist/chunk-HHCNPPGS.js.map +0 -1
- package/scripts/prune-ecc.sh +0 -310
- package/templates/skills/e2e-testing/SKILL.md +0 -326
- package/templates/skills/e2e-testing/agents/openai.yaml +0 -7
- package/templates/skills/investor-materials/SKILL.md +0 -96
- package/templates/skills/investor-outreach/SKILL.md +0 -91
- package/templates/skills/market-research/SKILL.md +0 -75
- package/templates/skills/market-research/agents/openai.yaml +0 -7
- package/templates/skills/nextjs-turbopack/SKILL.md +0 -44
- package/templates/skills/python-patterns/SKILL.md +0 -750
- package/templates/skills/python-testing/SKILL.md +0 -816
|
@@ -69,7 +69,6 @@ function resolveScope(scope) {
|
|
|
69
69
|
return scope ?? "project";
|
|
70
70
|
}
|
|
71
71
|
var DEFAULT_OPTIONS = {
|
|
72
|
-
withPrune: false,
|
|
73
72
|
withCodexTrust: false
|
|
74
73
|
};
|
|
75
74
|
var UPDATE_GROUPS = [
|
|
@@ -118,7 +117,7 @@ var EXTERNAL_ASSETS = [
|
|
|
118
117
|
id: "anthropic-data-plugin",
|
|
119
118
|
tier: "official",
|
|
120
119
|
// anthropics/knowledge-work-plugins 18k
|
|
121
|
-
description: "Anthropic data plugin
|
|
120
|
+
description: "Anthropic data plugin \u2014 SQL exploration, analysis, and visualization workflows. Installing it does not connect your warehouse; that is a separate MCP setup",
|
|
122
121
|
category: "data",
|
|
123
122
|
source: "anthropics",
|
|
124
123
|
condition: { kind: "any-track", tracks: ["data", "full"] },
|
|
@@ -328,79 +327,12 @@ var EXTERNAL_ASSETS = [
|
|
|
328
327
|
method: { kind: "internal", key: "natural-korean" }
|
|
329
328
|
},
|
|
330
329
|
// === Option-gated (v26.42.0 — opt-in, BREAKING vs prior has-dev-track auto-install) ===
|
|
331
|
-
{
|
|
332
|
-
id: "addy-agent-skills",
|
|
333
|
-
tier: "vetted",
|
|
334
|
-
// addyosmani 47k
|
|
335
|
-
description: "addy agent-skills (general dev)",
|
|
336
|
-
category: "workflow",
|
|
337
|
-
source: "addyosmani",
|
|
338
|
-
condition: { kind: "opt-in" },
|
|
339
|
-
method: {
|
|
340
|
-
kind: "plugin",
|
|
341
|
-
marketplace: "addyosmani/agent-skills",
|
|
342
|
-
pluginId: "agent-skills@addy-agent-skills"
|
|
343
|
-
}
|
|
344
|
-
},
|
|
345
|
-
{
|
|
346
|
-
id: "superpowers",
|
|
347
|
-
tier: "official",
|
|
348
|
-
// anthropics/claude-plugins-official 공식 배포 (소스 obra 213k)
|
|
349
|
-
// 저자 = obra (190k★ github.com/obra/superpowers). 호스팅 = Anthropic 공식
|
|
350
|
-
// marketplace github.com/anthropics/claude-plugins-official ("Official,
|
|
351
|
-
// Anthropic-managed directory of high quality Claude Code Plugins").
|
|
352
|
-
// source/marketplace 분리는 의도적 — source=저자, marketplace=registry.
|
|
353
|
-
description: "Superpowers \u2014 agentic skills framework (obra, Anthropic official marketplace)",
|
|
354
|
-
category: "workflow",
|
|
355
|
-
source: "obra",
|
|
356
|
-
condition: { kind: "opt-in" },
|
|
357
|
-
method: {
|
|
358
|
-
kind: "plugin",
|
|
359
|
-
marketplace: "anthropics/claude-plugins-official",
|
|
360
|
-
pluginId: "superpowers@claude-plugins-official"
|
|
361
|
-
}
|
|
362
|
-
},
|
|
363
|
-
// v26.110.0 (ADR-039, 오피셜 플러그인 큐레이션) — feature-dev: 탐색→설계→구현 워크플로우 +
|
|
364
|
-
// 전용 에이전트 3종(탐색·설계·리뷰). 방법론류 — ADR-032 "워크플로우 강제 구조는 기본
|
|
365
|
-
// 불필요" + 그 리뷰 에이전트가 Claude Code 기본 `/code-review` 와 중복(ADR-089)
|
|
366
|
-
// → superpowers 와 동급 opt-in.
|
|
367
|
-
{
|
|
368
|
-
id: "feature-dev",
|
|
369
|
-
tier: "official",
|
|
370
|
-
// anthropics/claude-plugins-official (242.5K installs, 사용자 관측 2026-07-18)
|
|
371
|
-
description: "feature-dev \u2014 guided feature workflow with explore/architect/review agents (Anthropic official)",
|
|
372
|
-
category: "workflow",
|
|
373
|
-
source: "anthropics",
|
|
374
|
-
condition: { kind: "opt-in" },
|
|
375
|
-
method: {
|
|
376
|
-
kind: "plugin",
|
|
377
|
-
marketplace: "anthropics/claude-plugins-official",
|
|
378
|
-
pluginId: "feature-dev@claude-plugins-official"
|
|
379
|
-
}
|
|
380
|
-
},
|
|
381
|
-
{
|
|
382
|
-
// v26.75.0 (ADR-021) — wshobson/agents marketplace.json name = "claude-code-workflows"
|
|
383
|
-
// (84 plugins). 대표 = full-stack-orchestration. 다른 orchestrator(agent-orchestration/
|
|
384
|
-
// tdd-workflows/ship-mate 등): `claude plugin install <name>@claude-code-workflows`.
|
|
385
|
-
id: "wshobson-agents",
|
|
386
|
-
tier: "vetted",
|
|
387
|
-
// wshobson/agents 36k
|
|
388
|
-
description: "wshobson agents \u2014 multi-agent orchestration workflows (full-stack/tdd/review)",
|
|
389
|
-
category: "workflow",
|
|
390
|
-
source: "wshobson",
|
|
391
|
-
condition: { kind: "opt-in" },
|
|
392
|
-
method: {
|
|
393
|
-
kind: "plugin",
|
|
394
|
-
marketplace: "wshobson/agents",
|
|
395
|
-
pluginId: "full-stack-orchestration@claude-code-workflows"
|
|
396
|
-
}
|
|
397
|
-
},
|
|
398
330
|
{
|
|
399
331
|
// v26.75.0 (ADR-021) — `npm i --save-dev @fission-ai/openspec` 후 `openspec init` 로 슬래시 주입.
|
|
400
332
|
id: "openspec",
|
|
401
333
|
tier: "vetted",
|
|
402
334
|
// Fission-AI/OpenSpec 53k
|
|
403
|
-
description: "OpenSpec \u2014 spec-driven
|
|
335
|
+
description: "OpenSpec \u2014 spec-driven change workflow for an existing codebase (propose \u2192 apply \u2192 archive). Use when your team has adopted a shared spec-and-delta process; it is a collaboration contract, not a coding aid",
|
|
404
336
|
category: "workflow",
|
|
405
337
|
source: "fission-ai",
|
|
406
338
|
condition: { kind: "opt-in" },
|
|
@@ -412,7 +344,7 @@ var EXTERNAL_ASSETS = [
|
|
|
412
344
|
id: "bmad-method",
|
|
413
345
|
tier: "vetted",
|
|
414
346
|
// bmad-code-org/BMAD-METHOD 48k
|
|
415
|
-
description: "BMAD-METHOD \u2014 multi-agent agile workflow (PM/Architect/Dev,
|
|
347
|
+
description: "BMAD-METHOD \u2014 multi-agent agile workflow (PM / Architect / Dev roles). Use for team-scale delivery with fixed roles; the pinned 6.9.0 still runs the full ceremony, so skip it for solo or small changes",
|
|
416
348
|
category: "workflow",
|
|
417
349
|
source: "bmad-code-org",
|
|
418
350
|
condition: { kind: "opt-in" },
|
|
@@ -436,7 +368,7 @@ var EXTERNAL_ASSETS = [
|
|
|
436
368
|
id: "railway-skills",
|
|
437
369
|
tier: "experimental",
|
|
438
370
|
// railwayapp/railway-skills 268
|
|
439
|
-
description: "Railway
|
|
371
|
+
description: "Railway skills \u2014 deploy and manage projects, services, and environments on Railway. Only for projects hosted on Railway; it drives a real account",
|
|
440
372
|
category: "backend",
|
|
441
373
|
source: "railwayapp",
|
|
442
374
|
// 2026-08-02 사용자 결정: 트랙 기본 → opt-in (ADR-063)
|
|
@@ -452,7 +384,7 @@ var EXTERNAL_ASSETS = [
|
|
|
452
384
|
id: "vercel-cli",
|
|
453
385
|
tier: "vetted",
|
|
454
386
|
// vercel/vercel 15k
|
|
455
|
-
description: "Vercel CLI (
|
|
387
|
+
description: "Vercel CLI \u2014 the real deploy tool as a devDependency (global under --scope global). Only if this project deploys to Vercel",
|
|
456
388
|
category: "backend",
|
|
457
389
|
source: "vercel",
|
|
458
390
|
// 2026-08-02 사용자 결정: 트랙 기본 → opt-in (ADR-063)
|
|
@@ -465,7 +397,7 @@ var EXTERNAL_ASSETS = [
|
|
|
465
397
|
id: "netlify-cli",
|
|
466
398
|
tier: "vetted",
|
|
467
399
|
// netlify/cli 1.9k
|
|
468
|
-
description: "Netlify CLI (
|
|
400
|
+
description: "Netlify CLI \u2014 the real deploy tool as a devDependency (global under --scope global). Only if this project deploys to Netlify",
|
|
469
401
|
category: "backend",
|
|
470
402
|
source: "netlify",
|
|
471
403
|
condition: { kind: "opt-in" },
|
|
@@ -475,7 +407,7 @@ var EXTERNAL_ASSETS = [
|
|
|
475
407
|
id: "supabase-cli",
|
|
476
408
|
tier: "vetted",
|
|
477
409
|
// supabase 103k
|
|
478
|
-
description: "Supabase CLI (
|
|
410
|
+
description: "Supabase CLI \u2014 the real Supabase tool as a devDependency (global under --scope global); first `supabase login` opens an OAuth browser flow. Only if this project uses Supabase",
|
|
479
411
|
category: "backend",
|
|
480
412
|
source: "supabase",
|
|
481
413
|
// 2026-08-02 사용자 결정: 트랙 기본 → opt-in (ADR-063)
|
|
@@ -497,7 +429,7 @@ var EXTERNAL_ASSETS = [
|
|
|
497
429
|
id: "frontend-design",
|
|
498
430
|
tier: "official",
|
|
499
431
|
// anthropics/skills (Anthropic 저자, ★171.5K — 2026-08-26 gh api 실측)
|
|
500
|
-
description: "frontend-design \u2014
|
|
432
|
+
description: "frontend-design \u2014 visual direction, typography, and anti-generic UI guidance (Anthropic official). For new UI or an explicit redesign; do not let it override an existing design system",
|
|
501
433
|
category: "frontend",
|
|
502
434
|
source: "anthropics",
|
|
503
435
|
condition: { kind: "any-track", tracks: DEV_TRACKS_WITH_STACK },
|
|
@@ -510,7 +442,7 @@ var EXTERNAL_ASSETS = [
|
|
|
510
442
|
id: "jakubkrehel-skills",
|
|
511
443
|
tier: "vetted",
|
|
512
444
|
// jakubkrehel/skills 2,602 (2026-08-02)
|
|
513
|
-
description: "Better-* interface suite \u2014
|
|
445
|
+
description: "Better-* interface suite \u2014 one skill per concern: typography, OKLCH color, accessibility, layout, UX writing, component states. Add when you need a specific UI review, not as a default",
|
|
514
446
|
category: "frontend",
|
|
515
447
|
source: "jakubkrehel",
|
|
516
448
|
condition: { kind: "opt-in" },
|
|
@@ -523,7 +455,7 @@ var EXTERNAL_ASSETS = [
|
|
|
523
455
|
id: "taste-skill",
|
|
524
456
|
tier: "vetted",
|
|
525
457
|
// Leonxlnx/taste-skill 70,078 (2026-08-02)
|
|
526
|
-
description: "
|
|
458
|
+
description: "taste-skill \u2014 tunes the look of landing pages, portfolios, and redesigns (variance \xB7 motion \xB7 density). Not for dashboards or multi-step product UI",
|
|
527
459
|
category: "frontend",
|
|
528
460
|
source: "Leonxlnx",
|
|
529
461
|
condition: { kind: "opt-in" },
|
|
@@ -538,7 +470,7 @@ var EXTERNAL_ASSETS = [
|
|
|
538
470
|
id: "scroll-world",
|
|
539
471
|
tier: "vetted",
|
|
540
472
|
// oso95/scroll-world 6,863 (2026-08-02)
|
|
541
|
-
description: "
|
|
473
|
+
description: "scroll-world \u2014 scroll-driven 3D landing pages with generated media assets. A special production pipeline that needs external image/video services; only when that effect is requested",
|
|
542
474
|
category: "frontend",
|
|
543
475
|
source: "oso95",
|
|
544
476
|
condition: { kind: "opt-in" },
|
|
@@ -559,7 +491,7 @@ var EXTERNAL_ASSETS = [
|
|
|
559
491
|
id: "preline",
|
|
560
492
|
tier: "vetted",
|
|
561
493
|
// htmlstreamofficial/preline 6,386 (2026-08-16)
|
|
562
|
-
description: "Preline theme generator \u2014 turns a brand description into a Preline UI Tailwind theme (tokens, dark mode,
|
|
494
|
+
description: "Preline theme generator \u2014 turns a brand description into a Preline UI Tailwind theme (tokens, dark mode, overrides) with a local generator script. Only for projects that use Preline",
|
|
563
495
|
category: "frontend",
|
|
564
496
|
source: "htmlstreamofficial",
|
|
565
497
|
condition: { kind: "opt-in" },
|
|
@@ -570,23 +502,6 @@ var EXTERNAL_ASSETS = [
|
|
|
570
502
|
}
|
|
571
503
|
},
|
|
572
504
|
// === dev tools (has_dev_track) ===
|
|
573
|
-
// v26.110.0 (ADR-039) — code-review: /code-review 커맨드 1개 (다중 에이전트 confidence
|
|
574
|
-
// 스코어링 PR 리뷰). 기본 리뷰 레인(`reviewer`)과 표면 중복 + Claude Code 네이티브
|
|
575
|
-
// /code-review 와 충돌 소지 → opt-in. (ADR-089 로 우리 리뷰 에이전트 2종은 은퇴했다.)
|
|
576
|
-
{
|
|
577
|
-
id: "code-review",
|
|
578
|
-
tier: "official",
|
|
579
|
-
// anthropics/claude-plugins-official (404.3K installs, 사용자 관측 2026-07-18)
|
|
580
|
-
description: "code-review \u2014 multi-agent PR review with confidence scoring (Anthropic official)",
|
|
581
|
-
category: "dev-tools",
|
|
582
|
-
source: "anthropics",
|
|
583
|
-
condition: { kind: "opt-in" },
|
|
584
|
-
method: {
|
|
585
|
-
kind: "plugin",
|
|
586
|
-
marketplace: "anthropics/claude-plugins-official",
|
|
587
|
-
pluginId: "code-review@claude-plugins-official"
|
|
588
|
-
}
|
|
589
|
-
},
|
|
590
505
|
// v26.110.0 (ADR-039) — security-guidance: 매 편집 패턴 경고 + LLM diff 리뷰 (훅 12파일,
|
|
591
506
|
// Python + Agent SDK 의존). 상시 훅 = 매 편집 비용 + 폭발 반경 — 실측 전 기본설치 금지
|
|
592
507
|
// (Context Cost NSM) → opt-in. Claude Code `/security-review`·agentshield ship 게이트와 보완.
|
|
@@ -594,7 +509,7 @@ var EXTERNAL_ASSETS = [
|
|
|
594
509
|
id: "security-guidance",
|
|
595
510
|
tier: "official",
|
|
596
511
|
// anthropics/claude-plugins-official (220.8K installs, 사용자 관측 2026-07-18)
|
|
597
|
-
description: "security-guidance \u2014 pattern
|
|
512
|
+
description: "security-guidance \u2014 pattern warnings on every edit plus an LLM review of diffs and commits (Anthropic official). Weigh it against security tools you already run: overlap, false positives, and cost per edit",
|
|
598
513
|
category: "dev-tools",
|
|
599
514
|
source: "anthropics",
|
|
600
515
|
condition: { kind: "opt-in" },
|
|
@@ -604,16 +519,6 @@ var EXTERNAL_ASSETS = [
|
|
|
604
519
|
pluginId: "security-guidance@claude-plugins-official"
|
|
605
520
|
}
|
|
606
521
|
},
|
|
607
|
-
{
|
|
608
|
-
id: "find-skills",
|
|
609
|
-
tier: "vetted",
|
|
610
|
-
// vercel-labs/skills 20k (license none — 출처 신뢰)
|
|
611
|
-
description: "find-skills \u2014 search \xB7 rank all installed skills (vercel-labs, all dev tracks)",
|
|
612
|
-
category: "dev-tools",
|
|
613
|
-
source: "vercel-labs",
|
|
614
|
-
condition: { kind: "any-track", tracks: DEV_TRACKS_WITH_STACK },
|
|
615
|
-
method: { kind: "skill", source: "vercel-labs/skills", skill: "find-skills" }
|
|
616
|
-
},
|
|
617
522
|
// v26.110.0 (ADR-039) — context7 플러그인은 **미등록** (검토 후 철회): templates/mcp.json ·
|
|
618
523
|
// codex config.toml.template · opencode 설정이 이미 @upstash/context7-mcp 를 기본 wiring —
|
|
619
524
|
// 플러그인 추가 = 동일 서버 중복 등록이고 도달 범위도 더 좁다(plugin=claude-only vs
|
|
@@ -622,7 +527,7 @@ var EXTERNAL_ASSETS = [
|
|
|
622
527
|
id: "agent-browser",
|
|
623
528
|
tier: "vetted",
|
|
624
529
|
// vercel-labs/agent-browser 34k
|
|
625
|
-
description: "agent-browser \u2014
|
|
530
|
+
description: "agent-browser \u2014 drives a real browser from the terminal (Playwright wrapper: screenshots, DOM search). Only if your CLI has no equivalent browser tool",
|
|
626
531
|
// v26.78.0 — Understanding 으로 재분류: 웹 지각(screenshot·DOM). 영상/코드 지각과 같은 축.
|
|
627
532
|
category: "understanding",
|
|
628
533
|
source: "vercel-labs",
|
|
@@ -637,7 +542,7 @@ var EXTERNAL_ASSETS = [
|
|
|
637
542
|
id: "claude-video",
|
|
638
543
|
tier: "vetted",
|
|
639
544
|
// bradautomates/claude-video 1.8k
|
|
640
|
-
description: "Claude Video \u2014
|
|
545
|
+
description: "Claude Video \u2014 fetches a video from a URL, extracts frames and a transcript so the agent can see and hear it. For video evidence, not general image understanding",
|
|
641
546
|
category: "understanding",
|
|
642
547
|
source: "bradautomates",
|
|
643
548
|
condition: { kind: "opt-in" },
|
|
@@ -651,7 +556,7 @@ var EXTERNAL_ASSETS = [
|
|
|
651
556
|
id: "understand-anything",
|
|
652
557
|
tier: "vetted",
|
|
653
558
|
// Lum1104/Understand-Anything 53k
|
|
654
|
-
description: "Understand Anything \u2014
|
|
559
|
+
description: "Understand Anything \u2014 builds an interactive knowledge graph and dashboard of your codebase. For visual exploration of a large codebase; the graph costs time to build and keep current",
|
|
655
560
|
category: "understanding",
|
|
656
561
|
source: "Lum1104",
|
|
657
562
|
condition: { kind: "opt-in" },
|
|
@@ -665,7 +570,7 @@ var EXTERNAL_ASSETS = [
|
|
|
665
570
|
id: "agentmemory",
|
|
666
571
|
tier: "vetted",
|
|
667
572
|
// rohitg00/agentmemory 21k
|
|
668
|
-
description: "AgentMemory \u2014
|
|
573
|
+
description: "AgentMemory \u2014 a separate memory server (MCP + hooks) that persists state across sessions; the runtime server is its own install (npx @agentmemory/agentmemory). Check first whether your CLI's own memory and project records already cover it",
|
|
669
574
|
category: "understanding",
|
|
670
575
|
source: "rohitg00",
|
|
671
576
|
condition: { kind: "opt-in" },
|
|
@@ -681,7 +586,7 @@ var EXTERNAL_ASSETS = [
|
|
|
681
586
|
id: "frontend-slides",
|
|
682
587
|
tier: "vetted",
|
|
683
588
|
// zarazhangrui/frontend-slides 21k
|
|
684
|
-
description: "frontend-slides \u2014 dependency-free HTML slide decks
|
|
589
|
+
description: "frontend-slides \u2014 dependency-free HTML slide decks with PPTX-to-HTML and PDF export scripts. When an HTML deck is the actual deliverable",
|
|
685
590
|
category: "visual-media",
|
|
686
591
|
source: "zarazhangrui",
|
|
687
592
|
condition: { kind: "opt-in" },
|
|
@@ -695,28 +600,18 @@ var EXTERNAL_ASSETS = [
|
|
|
695
600
|
id: "marp-slide",
|
|
696
601
|
tier: "vetted",
|
|
697
602
|
// softaworks/agent-toolkit 2k
|
|
698
|
-
description: "marp-slide \u2014 Marp Markdown slides
|
|
603
|
+
description: "marp-slide \u2014 Marp Markdown slides with 7 themes and PPTX/PDF export. Only for a Marp-based workflow",
|
|
699
604
|
category: "visual-media",
|
|
700
605
|
source: "softaworks",
|
|
701
606
|
// softaworks plugin dir 는 plugin.json 부재 → skill 경로가 안전 (Docker 검증).
|
|
702
607
|
condition: { kind: "opt-in" },
|
|
703
608
|
method: { kind: "skill", source: "softaworks/agent-toolkit", skill: "marp-slide" }
|
|
704
609
|
},
|
|
705
|
-
{
|
|
706
|
-
id: "mermaid-diagrams",
|
|
707
|
-
tier: "vetted",
|
|
708
|
-
// softaworks/agent-toolkit 2k
|
|
709
|
-
description: "mermaid-diagrams \u2014 Mermaid flow/sequence/ER/state diagram authoring (code \xB7 docs)",
|
|
710
|
-
category: "visual-media",
|
|
711
|
-
source: "softaworks",
|
|
712
|
-
condition: { kind: "opt-in" },
|
|
713
|
-
method: { kind: "skill", source: "softaworks/agent-toolkit", skill: "mermaid-diagrams" }
|
|
714
|
-
},
|
|
715
610
|
{
|
|
716
611
|
id: "gsap-skills",
|
|
717
612
|
tier: "vetted",
|
|
718
613
|
// greensock/gsap-skills 9k (GSAP 본가 공식)
|
|
719
|
-
description: "GSAP skills \u2014
|
|
614
|
+
description: "GSAP skills \u2014 GreenSock's own guide to timelines, ScrollTrigger, and framework lifecycle cleanup. Only for projects that already use GSAP; not a reason to pick it",
|
|
720
615
|
category: "visual-media",
|
|
721
616
|
source: "greensock",
|
|
722
617
|
condition: { kind: "opt-in" },
|
|
@@ -733,7 +628,7 @@ var EXTERNAL_ASSETS = [
|
|
|
733
628
|
id: "remotion",
|
|
734
629
|
tier: "vetted",
|
|
735
630
|
// remotion-dev/skills 3.6k (license none — 출처 신뢰; 코어 BUSL 고지)
|
|
736
|
-
description: "Remotion \u2014 programmatic MP4 video from React components (
|
|
631
|
+
description: "Remotion \u2014 programmatic MP4 video from React components (core license BUSL). The skill is a reference; the renderer and its environment are a separate install",
|
|
737
632
|
category: "visual-media",
|
|
738
633
|
source: "remotion-dev",
|
|
739
634
|
condition: { kind: "opt-in" },
|
|
@@ -744,28 +639,17 @@ var EXTERNAL_ASSETS = [
|
|
|
744
639
|
id: "ppt-master",
|
|
745
640
|
tier: "vetted",
|
|
746
641
|
// hugohe3/ppt-master 29k
|
|
747
|
-
description: "ppt-master \u2014 editable PowerPoint (.pptx) from
|
|
642
|
+
description: "ppt-master \u2014 editable PowerPoint (.pptx) from a document, with native shapes, speaker notes, and your own template. When the deliverable must stay editable in PowerPoint",
|
|
748
643
|
category: "visual-media",
|
|
749
644
|
source: "hugohe3",
|
|
750
645
|
condition: { kind: "opt-in" },
|
|
751
646
|
method: { kind: "skill", source: "hugohe3/ppt-master", skill: "ppt-master" }
|
|
752
647
|
},
|
|
753
|
-
{
|
|
754
|
-
// deer-flow 72k 거대 harness지만 --skill 로 ppt-generation 단일 skill만 설치 (skills/public/ 중첩, Docker 확인).
|
|
755
|
-
id: "ppt-generation",
|
|
756
|
-
tier: "vetted",
|
|
757
|
-
// bytedance/deer-flow 72k
|
|
758
|
-
description: "ppt-generation \u2014 PPTX by generating an image per slide and composing into PowerPoint (deer-flow skill)",
|
|
759
|
-
category: "visual-media",
|
|
760
|
-
source: "bytedance",
|
|
761
|
-
condition: { kind: "opt-in" },
|
|
762
|
-
method: { kind: "skill", source: "bytedance/deer-flow", skill: "ppt-generation" }
|
|
763
|
-
},
|
|
764
648
|
{
|
|
765
649
|
id: "web-video-presentation",
|
|
766
650
|
tier: "vetted",
|
|
767
651
|
// ConardLi/garden-skills 8.4k
|
|
768
|
-
description: "web-video-presentation \u2014 click-driven 16:9 web decks that
|
|
652
|
+
description: "web-video-presentation \u2014 click-driven 16:9 web decks that play like video, with optional TTS narration. Keeps a step-by-step approval procedure; use for narrated web presentations",
|
|
769
653
|
category: "visual-media",
|
|
770
654
|
source: "ConardLi",
|
|
771
655
|
condition: { kind: "opt-in" },
|
|
@@ -775,7 +659,7 @@ var EXTERNAL_ASSETS = [
|
|
|
775
659
|
id: "revealjs",
|
|
776
660
|
tier: "experimental",
|
|
777
661
|
// ryanbbrown/revealjs-skill 347 (<1000 → experimental, opt-in + 경고)
|
|
778
|
-
description: "reveal.js \u2014
|
|
662
|
+
description: "reveal.js \u2014 HTML presentations with themes, code highlighting, and speaker notes, no build step. Overlaps the other HTML deck assets; pick it when you specifically need reveal.js templates or compatibility",
|
|
779
663
|
category: "visual-media",
|
|
780
664
|
source: "ryanbbrown",
|
|
781
665
|
condition: { kind: "opt-in" },
|
|
@@ -786,7 +670,7 @@ var EXTERNAL_ASSETS = [
|
|
|
786
670
|
id: "supabase-agent-skills",
|
|
787
671
|
tier: "vetted",
|
|
788
672
|
// supabase/agent-skills 2.2k
|
|
789
|
-
description: "Supabase
|
|
673
|
+
description: "Supabase agent skills \u2014 auth, RLS, edge functions, realtime, and current docs (Supabase official). Only for projects on Supabase; pre-checked on csr-supabase and full",
|
|
790
674
|
category: "backend",
|
|
791
675
|
source: "supabase",
|
|
792
676
|
condition: { kind: "any-track", tracks: ["csr-supabase", "full"] },
|
|
@@ -800,7 +684,7 @@ var EXTERNAL_ASSETS = [
|
|
|
800
684
|
id: "postgres-best-practices",
|
|
801
685
|
tier: "vetted",
|
|
802
686
|
// supabase/agent-skills 2.2k
|
|
803
|
-
description: "Postgres best practices \u2014 schema
|
|
687
|
+
description: "Postgres best practices \u2014 schema, index, and query optimization reference (Supabase official). Reach for it when designing tables or fixing slow queries, not on every edit",
|
|
804
688
|
category: "backend",
|
|
805
689
|
source: "supabase",
|
|
806
690
|
condition: { kind: "any-track", tracks: ["csr-supabase", "full"] },
|
|
@@ -817,7 +701,7 @@ var EXTERNAL_ASSETS = [
|
|
|
817
701
|
id: "react-best-practices",
|
|
818
702
|
tier: "vetted",
|
|
819
703
|
// vercel-labs/agent-skills 27k (license none — 출처 신뢰)
|
|
820
|
-
description: "React best practices \u2014 Vercel's
|
|
704
|
+
description: "React best practices \u2014 Vercel's data-fetching order, server rendering, serialization, and cache guidance. For performance work in React, not every component edit",
|
|
821
705
|
category: "frontend",
|
|
822
706
|
source: "vercel-labs",
|
|
823
707
|
condition: { kind: "any-track", tracks: CSR_SSR_NEXTJS_FULL },
|
|
@@ -833,7 +717,7 @@ var EXTERNAL_ASSETS = [
|
|
|
833
717
|
id: "shadcn-ui",
|
|
834
718
|
tier: "vetted",
|
|
835
719
|
// shadcn-ui/ui 115k
|
|
836
|
-
description: "shadcn/ui \u2014
|
|
720
|
+
description: "shadcn/ui \u2014 reads this project's component config and registry so the agent adds components the way your setup expects (shadcn official). Only for projects that use shadcn",
|
|
837
721
|
category: "frontend",
|
|
838
722
|
source: "shadcn-ui",
|
|
839
723
|
condition: { kind: "any-track", tracks: CSR_SSR_NEXTJS_FULL },
|
|
@@ -846,7 +730,7 @@ var EXTERNAL_ASSETS = [
|
|
|
846
730
|
id: "web-design-guidelines",
|
|
847
731
|
tier: "vetted",
|
|
848
732
|
// vercel-labs/agent-skills 27k (license none — 출처 신뢰)
|
|
849
|
-
description: "Web design guidelines \u2014 Vercel's
|
|
733
|
+
description: "Web design guidelines \u2014 Vercel's review checklist for hierarchy, color, spacing, and accessibility. A review aid, not a generator; frontend-design covers the default",
|
|
850
734
|
category: "frontend",
|
|
851
735
|
source: "vercel-labs",
|
|
852
736
|
condition: { kind: "opt-in" },
|
|
@@ -865,7 +749,7 @@ var EXTERNAL_ASSETS = [
|
|
|
865
749
|
id: "game-engine",
|
|
866
750
|
tier: "vetted",
|
|
867
751
|
// github/awesome-copilot 37,909★ (MIT, 2026-08-17 `gh api` 실측 · GitHub 공식 조직)
|
|
868
|
-
description: "Game engine \u2014 web game development with HTML5 Canvas
|
|
752
|
+
description: "Game engine \u2014 web game development with HTML5 Canvas / WebGL (Phaser, Three.js, Babylon.js): game loop, physics, sprites, tilemaps, input. Web games only, not Unity or Unreal",
|
|
869
753
|
category: "frontend",
|
|
870
754
|
source: "github",
|
|
871
755
|
condition: { kind: "opt-in" },
|
|
@@ -875,38 +759,12 @@ var EXTERNAL_ASSETS = [
|
|
|
875
759
|
skill: "game-engine"
|
|
876
760
|
}
|
|
877
761
|
},
|
|
878
|
-
{
|
|
879
|
-
// 2026-08-17 (사용자 지정) — 게임 스튜디오 **프로세스** 스킬 73종.
|
|
880
|
-
//
|
|
881
|
-
// description 이 두 가지를 반드시 말해야 하는 이유 (둘 다 Docker 실측):
|
|
882
|
-
// ① **에이전트는 안 깔린다.** 리포의 엔진 전문성(`godot-specialist`·`unity-specialist`·
|
|
883
|
-
// `unreal-specialist`)은 49개 *에이전트*에 있는데 `npx skills add` 는 `.claude/skills/`
|
|
884
|
-
// 만 가져온다(실측: 73 SKILL.md, settings.json·rules·hooks 미설치). "Unity 되나?" 로
|
|
885
|
-
// 고른 사용자가 스프린트 계획 스킬을 받게 되므로 안 적으면 그게 거짓 광고다.
|
|
886
|
-
// ② **상주 ~4,440 tok/세션.** 73 descriptor 실측(17,760자/4). tooling 트랙 baseline 전체가
|
|
887
|
-
// ~5,037 tok 이라 이 자산 하나가 상주를 거의 두 배로 만든다 — 이 저장소의 1차 지표를
|
|
888
|
-
// 가장 크게 움직이는 자산이라 선택 시점에 숫자가 보여야 한다.
|
|
889
|
-
//
|
|
890
|
-
// 저자의 공식 설치법은 `git clone` (프로젝트 템플릿)이다. 그 경로는 `.claude/settings.json`·
|
|
891
|
-
// rules·hooks 를 함께 들여와 우리 하네스와 같은 자리를 다투므로 카탈로그에 넣지 않는다.
|
|
892
|
-
id: "game-studios",
|
|
893
|
-
tier: "vetted",
|
|
894
|
-
// Donchitos/Claude-Code-Game-Studios 23,924★ (MIT · 최종 push 2026-05-21, 2026-08-17 `gh api` 실측)
|
|
895
|
-
description: "Game studio workflow \u2014 73 process skills (sprint-plan \xB7 qa-plan \xB7 playtest-report \xB7 release-checklist \xB7 art-bible \xB7 balance-check). Skills only: the repo's 49 engine agents (godot/unity/unreal-specialist) are NOT installed. ~4,440 tok/session resident",
|
|
896
|
-
category: "workflow",
|
|
897
|
-
source: "Donchitos",
|
|
898
|
-
condition: { kind: "opt-in" },
|
|
899
|
-
method: {
|
|
900
|
-
kind: "skill",
|
|
901
|
-
source: "https://github.com/Donchitos/Claude-Code-Game-Studios"
|
|
902
|
-
}
|
|
903
|
-
},
|
|
904
762
|
// === Executive tracks ===
|
|
905
763
|
{
|
|
906
764
|
id: "anthropic-document-skills",
|
|
907
765
|
tier: "official",
|
|
908
766
|
// anthropics/skills 144k
|
|
909
|
-
description: "Anthropic document
|
|
767
|
+
description: "Anthropic document skills \u2014 pptx / docx / xlsx / pdf authoring with real scripts (slide duplication, OOXML validation, thumbnails). For document deliverables",
|
|
910
768
|
category: "business",
|
|
911
769
|
source: "anthropics",
|
|
912
770
|
condition: { kind: "any-track", tracks: ["executive", "full"] },
|
|
@@ -923,7 +781,7 @@ var EXTERNAL_ASSETS = [
|
|
|
923
781
|
id: "finance-skills",
|
|
924
782
|
tier: "vetted",
|
|
925
783
|
// alirezarezvani 16k
|
|
926
|
-
description: "finance-skills
|
|
784
|
+
description: "finance-skills \u2014 financial analyst, SaaS metrics, and investment advisor skills with calculation scripts. For financial analysis work; the tools matter more than the role names",
|
|
927
785
|
category: "business",
|
|
928
786
|
source: "alirezarezvani",
|
|
929
787
|
// 2026-08-02 사용자 결정: 트랙 기본 → opt-in (ADR-063)
|
|
@@ -940,7 +798,7 @@ var EXTERNAL_ASSETS = [
|
|
|
940
798
|
id: "product-skills",
|
|
941
799
|
tier: "vetted",
|
|
942
800
|
// alirezarezvani 16k
|
|
943
|
-
description: "product-skills
|
|
801
|
+
description: "product-skills \u2014 RICE prioritization, PRD, interview analysis, design tokens, project scaffolding (15 skills with Python tools). Pick it for product-management work, and use the tools you need",
|
|
944
802
|
category: "dev-tools",
|
|
945
803
|
source: "alirezarezvani",
|
|
946
804
|
// v26.106.0 (ADR-035, 사용자 승인 C): dev 8트랙 기본에서 제외 — PM 스킬 15종은 PM 트랙 목적
|
|
@@ -967,7 +825,7 @@ var EXTERNAL_ASSETS = [
|
|
|
967
825
|
id: "marketingskills",
|
|
968
826
|
tier: "vetted",
|
|
969
827
|
// coreyhaines31 35k
|
|
970
|
-
description: "marketingskills
|
|
828
|
+
description: "marketingskills \u2014 SEO, conversion, ads, content, and measurement (45 skills, cross-referenced). For marketing work; too broad as a default on a development track",
|
|
971
829
|
category: "business",
|
|
972
830
|
source: "coreyhaines31",
|
|
973
831
|
condition: { kind: "opt-in" },
|
|
@@ -992,7 +850,7 @@ var EXTERNAL_ASSETS = [
|
|
|
992
850
|
id: "trailofbits-skills",
|
|
993
851
|
tier: "vetted",
|
|
994
852
|
// trailofbits/skills 5.5k (CC-BY-SA — 출처 신뢰)
|
|
995
|
-
description: "Trail of Bits differential-review
|
|
853
|
+
description: "Trail of Bits differential-review \u2014 security review of a change: history, call impact, attack scenarios, verification scope. For security-relevant changes, not every PR",
|
|
996
854
|
category: "dev-tools",
|
|
997
855
|
source: "trailofbits",
|
|
998
856
|
condition: { kind: "opt-in" },
|
|
@@ -1001,37 +859,6 @@ var EXTERNAL_ASSETS = [
|
|
|
1001
859
|
marketplace: "trailofbits/skills",
|
|
1002
860
|
pluginId: "differential-review@trailofbits"
|
|
1003
861
|
}
|
|
1004
|
-
},
|
|
1005
|
-
{
|
|
1006
|
-
id: "ecc-plugin",
|
|
1007
|
-
tier: "vetted",
|
|
1008
|
-
// affaan-m/everything-claude-code 199k
|
|
1009
|
-
description: "ECC \u2014 60 agents \xB7 230 skills \xB7 75 commands. Affaan's hackathon package",
|
|
1010
|
-
category: "ecc-suite",
|
|
1011
|
-
source: "affaan-m",
|
|
1012
|
-
condition: { kind: "opt-in" },
|
|
1013
|
-
// v26.54.1 — upstream marketplace.json 의 name 은 "ecc" (plugin name 도 "ecc").
|
|
1014
|
-
// 기존 매핑 `everything-claude-code@everything-claude-code` 는 marketplace 가
|
|
1015
|
-
// 그 이름으로 등록되던 옛 버전 기준. fresh install 에서는 "Plugin not found" 발생.
|
|
1016
|
-
method: {
|
|
1017
|
-
kind: "plugin",
|
|
1018
|
-
marketplace: "affaan-m/everything-claude-code",
|
|
1019
|
-
pluginId: "ecc@ecc"
|
|
1020
|
-
}
|
|
1021
|
-
},
|
|
1022
|
-
{
|
|
1023
|
-
id: "ecc-prune",
|
|
1024
|
-
tier: "official",
|
|
1025
|
-
// uzys 본 하네스 자체
|
|
1026
|
-
description: "ECC prune (drop items beyond curated 89 KEEP \u2192 copy to .claude/local-plugins/ecc/)",
|
|
1027
|
-
category: "ecc-suite",
|
|
1028
|
-
source: "uzys",
|
|
1029
|
-
condition: { kind: "option", flag: "withPrune" },
|
|
1030
|
-
method: {
|
|
1031
|
-
kind: "shell-script",
|
|
1032
|
-
script: "scripts/prune-ecc.sh",
|
|
1033
|
-
args: ["--apply", "--force"]
|
|
1034
|
-
}
|
|
1035
862
|
}
|
|
1036
863
|
];
|
|
1037
864
|
var DEV_METHOD_SKILL_IDS = [
|
|
@@ -1078,7 +905,16 @@ var RETIRED_SKILL_IDS = [
|
|
|
1078
905
|
"verification-loop",
|
|
1079
906
|
"deep-research",
|
|
1080
907
|
"eval-harness",
|
|
1081
|
-
"agent-introspection-debugging"
|
|
908
|
+
"agent-introspection-debugging",
|
|
909
|
+
// #492 — ECC cherry-pick 스킬 7종 은퇴. 번들에서 빠졌으니 설치본에 남은 디렉터리는 죽은
|
|
910
|
+
// 사본이다 — `update` 화면이 "지워도 된다"를 말하고 삭제는 사용자가 한다(위와 같은 규율).
|
|
911
|
+
"python-patterns",
|
|
912
|
+
"python-testing",
|
|
913
|
+
"e2e-testing",
|
|
914
|
+
"nextjs-turbopack",
|
|
915
|
+
"market-research",
|
|
916
|
+
"investor-materials",
|
|
917
|
+
"investor-outreach"
|
|
1082
918
|
];
|
|
1083
919
|
var TRUST_TIER = Object.fromEntries(
|
|
1084
920
|
EXTERNAL_ASSETS.map((a) => [a.id, a.tier])
|
|
@@ -1120,7 +956,6 @@ function assetCliSupport(asset) {
|
|
|
1120
956
|
}
|
|
1121
957
|
switch (asset.method.kind) {
|
|
1122
958
|
case "plugin":
|
|
1123
|
-
case "shell-script":
|
|
1124
959
|
return ["claude"];
|
|
1125
960
|
case "skill":
|
|
1126
961
|
case "npm":
|
|
@@ -1680,8 +1515,6 @@ function methodDetail(method) {
|
|
|
1680
1515
|
return { pkg: method.pkg };
|
|
1681
1516
|
case "npx-run":
|
|
1682
1517
|
return { cmd: method.cmd, args: (method.args ?? []).join(" ") };
|
|
1683
|
-
case "shell-script":
|
|
1684
|
-
return { script: method.script, args: method.args.join(" ") };
|
|
1685
1518
|
case "internal":
|
|
1686
1519
|
return { key: method.key };
|
|
1687
1520
|
}
|
|
@@ -1743,7 +1576,7 @@ function survivesClaudeDirRename(asset) {
|
|
|
1743
1576
|
// `npx skills add` project scope → `.claude/skills/`
|
|
1744
1577
|
case "shell-script":
|
|
1745
1578
|
return false;
|
|
1746
|
-
// ecc-prune → `.claude/local-plugins/`
|
|
1579
|
+
// legacy(#492 은퇴): ecc-prune → `.claude/local-plugins/`
|
|
1747
1580
|
case "npx-run":
|
|
1748
1581
|
return false;
|
|
1749
1582
|
case "internal":
|
|
@@ -1839,8 +1672,6 @@ function buildAssetSpec(ctx) {
|
|
|
1839
1672
|
return {
|
|
1840
1673
|
tracks: ctx.tracks,
|
|
1841
1674
|
withTauri: isAssetSelected("tauri-desktop", ctx),
|
|
1842
|
-
// v26.55.0 — withEcc gating (ADR-016). withPrune 은 ecc-plugin 사용을 전제한다.
|
|
1843
|
-
withEcc: isAssetSelected("ecc-plugin", ctx) || ctx.options.withPrune === true,
|
|
1844
1675
|
// v26.87.0 — internal bundled skills (dev-method + opt-in advisors, v26.95.0). id 별 condition
|
|
1845
1676
|
// (has-dev-track vs opt-in)은 isAssetSelected 가 적용한다.
|
|
1846
1677
|
selectedInternalSkills: INTERNAL_BUNDLED_SKILL_IDS.filter((id) => isAssetSelected(id, ctx))
|
|
@@ -1907,15 +1738,8 @@ var RETIRED_AGENTS = [
|
|
|
1907
1738
|
var RETIRED_AGENT_IDS = RETIRED_AGENTS.map((a) => a.id);
|
|
1908
1739
|
var ALWAYS_HOOKS = ["session-start.sh", "protect-files.sh"];
|
|
1909
1740
|
var COMMON_SKILL_DIRS = [];
|
|
1910
|
-
var COMMON_SKILL_DIRS_ECC = [];
|
|
1911
|
-
var MODIFIED_COMMON_SKILL_DIRS = [];
|
|
1912
1741
|
var DEV_SKILL_DIRS = [];
|
|
1913
|
-
var DEV_SKILL_DIRS_ECC = [];
|
|
1914
|
-
var MODIFIED_DEV_SKILL_DIRS = [];
|
|
1915
|
-
var MODIFIED_ECC_SKILL_DIRS = [...MODIFIED_COMMON_SKILL_DIRS, ...MODIFIED_DEV_SKILL_DIRS];
|
|
1916
1742
|
var UI_SKILL_DIRS = ["ui-visual-review"];
|
|
1917
|
-
var UI_SKILL_DIRS_ECC = ["e2e-testing"];
|
|
1918
|
-
var PYTHON_SKILL_DIRS_ECC = ["python-patterns", "python-testing"];
|
|
1919
1743
|
function isCliNeutralTarget(target) {
|
|
1920
1744
|
return target.startsWith(`${INSTALL_LOG_DIR}/`);
|
|
1921
1745
|
}
|
|
@@ -1985,36 +1809,6 @@ function buildManifest(spec) {
|
|
|
1985
1809
|
applies: all
|
|
1986
1810
|
});
|
|
1987
1811
|
}
|
|
1988
|
-
for (const sd of COMMON_SKILL_DIRS_ECC) {
|
|
1989
|
-
m.push({
|
|
1990
|
-
source: `skills/${sd}`,
|
|
1991
|
-
target: `.claude/skills/${sd}`,
|
|
1992
|
-
type: "dir",
|
|
1993
|
-
applies: (s) => !s.withEcc
|
|
1994
|
-
});
|
|
1995
|
-
}
|
|
1996
|
-
for (const sd of MODIFIED_COMMON_SKILL_DIRS) {
|
|
1997
|
-
m.push({
|
|
1998
|
-
source: `skills/${sd}`,
|
|
1999
|
-
target: `.claude/skills/${sd}`,
|
|
2000
|
-
type: "dir",
|
|
2001
|
-
applies: all
|
|
2002
|
-
});
|
|
2003
|
-
}
|
|
2004
|
-
for (const sd of ["market-research", "investor-materials", "investor-outreach"]) {
|
|
2005
|
-
m.push({
|
|
2006
|
-
source: `skills/${sd}`,
|
|
2007
|
-
target: `.claude/skills/${sd}`,
|
|
2008
|
-
type: "dir",
|
|
2009
|
-
applies: (s) => !s.withEcc && onTracks("executive|full")(s)
|
|
2010
|
-
});
|
|
2011
|
-
}
|
|
2012
|
-
m.push({
|
|
2013
|
-
source: "skills/nextjs-turbopack",
|
|
2014
|
-
target: ".claude/skills/nextjs-turbopack",
|
|
2015
|
-
type: "dir",
|
|
2016
|
-
applies: (s) => !s.withEcc && onTracks("ssr-nextjs|full")(s)
|
|
2017
|
-
});
|
|
2018
1812
|
for (const sd of INTERNAL_BUNDLED_SKILL_IDS) {
|
|
2019
1813
|
m.push({
|
|
2020
1814
|
source: `skills/${sd}`,
|
|
@@ -2023,14 +1817,6 @@ function buildManifest(spec) {
|
|
|
2023
1817
|
applies: (s) => (s.selectedInternalSkills ?? []).includes(sd)
|
|
2024
1818
|
});
|
|
2025
1819
|
}
|
|
2026
|
-
for (const sd of PYTHON_SKILL_DIRS_ECC) {
|
|
2027
|
-
m.push({
|
|
2028
|
-
source: `skills/${sd}`,
|
|
2029
|
-
target: `.claude/skills/${sd}`,
|
|
2030
|
-
type: "dir",
|
|
2031
|
-
applies: (s) => !s.withEcc && anyTrack(s.tracks, "data|csr-fastapi|full")
|
|
2032
|
-
});
|
|
2033
|
-
}
|
|
2034
1820
|
for (const sd of DEV_SKILL_DIRS) {
|
|
2035
1821
|
m.push({
|
|
2036
1822
|
source: `skills/${sd}`,
|
|
@@ -2039,22 +1825,6 @@ function buildManifest(spec) {
|
|
|
2039
1825
|
applies: dev
|
|
2040
1826
|
});
|
|
2041
1827
|
}
|
|
2042
|
-
for (const sd of DEV_SKILL_DIRS_ECC) {
|
|
2043
|
-
m.push({
|
|
2044
|
-
source: `skills/${sd}`,
|
|
2045
|
-
target: `.claude/skills/${sd}`,
|
|
2046
|
-
type: "dir",
|
|
2047
|
-
applies: (s) => !s.withEcc && hasDevTrack(s.tracks)
|
|
2048
|
-
});
|
|
2049
|
-
}
|
|
2050
|
-
for (const sd of MODIFIED_DEV_SKILL_DIRS) {
|
|
2051
|
-
m.push({
|
|
2052
|
-
source: `skills/${sd}`,
|
|
2053
|
-
target: `.claude/skills/${sd}`,
|
|
2054
|
-
type: "dir",
|
|
2055
|
-
applies: dev
|
|
2056
|
-
});
|
|
2057
|
-
}
|
|
2058
1828
|
for (const sd of UI_SKILL_DIRS) {
|
|
2059
1829
|
m.push({
|
|
2060
1830
|
source: `skills/${sd}`,
|
|
@@ -2063,14 +1833,6 @@ function buildManifest(spec) {
|
|
|
2063
1833
|
applies: ui
|
|
2064
1834
|
});
|
|
2065
1835
|
}
|
|
2066
|
-
for (const sd of UI_SKILL_DIRS_ECC) {
|
|
2067
|
-
m.push({
|
|
2068
|
-
source: `skills/${sd}`,
|
|
2069
|
-
target: `.claude/skills/${sd}`,
|
|
2070
|
-
type: "dir",
|
|
2071
|
-
applies: (s) => !s.withEcc && hasUiTrack(s.tracks)
|
|
2072
|
-
});
|
|
2073
|
-
}
|
|
2074
1836
|
for (const h of ALWAYS_HOOKS) {
|
|
2075
1837
|
m.push({
|
|
2076
1838
|
source: `hooks/${h}`,
|
|
@@ -2098,8 +1860,7 @@ var CATEGORIES = [
|
|
|
2098
1860
|
"dev-tools",
|
|
2099
1861
|
"understanding",
|
|
2100
1862
|
"visual-media",
|
|
2101
|
-
"workflow"
|
|
2102
|
-
"ecc-suite"
|
|
1863
|
+
"workflow"
|
|
2103
1864
|
];
|
|
2104
1865
|
var CATEGORY_TITLES = {
|
|
2105
1866
|
frontend: "\u{1F3A8} Frontend (UI \xB7 Design)",
|
|
@@ -2111,8 +1872,7 @@ var CATEGORY_TITLES = {
|
|
|
2111
1872
|
understanding: "\u{1F9E0} Understanding (Perception \xB7 Memory)",
|
|
2112
1873
|
// v26.85.0 — 코드-퍼스트 비주얼/미디어 제작: 슬라이드·다이어그램·모션·동영상.
|
|
2113
1874
|
"visual-media": "\u{1F3AC} Visual & Media (Slides \xB7 Diagrams \xB7 Motion \xB7 Video)",
|
|
2114
|
-
workflow: "\u{1F504} Workflow (Development Cycle)"
|
|
2115
|
-
"ecc-suite": "\u{1F4E6} ECC Suite"
|
|
1875
|
+
workflow: "\u{1F504} Workflow (Development Cycle)"
|
|
2116
1876
|
};
|
|
2117
1877
|
|
|
2118
1878
|
export {
|
|
@@ -2189,4 +1949,4 @@ export {
|
|
|
2189
1949
|
CATEGORIES,
|
|
2190
1950
|
CATEGORY_TITLES
|
|
2191
1951
|
};
|
|
2192
|
-
//# sourceMappingURL=chunk-
|
|
1952
|
+
//# sourceMappingURL=chunk-FTL34NT4.js.map
|