Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
},
"metadata": {
"description": "Personal Claude Code plugin collection with 24 specialized plugins. Codex 0.135 + Hermes Agent native — generated `.agents/plugins/marketplace.json` + per-plugin `.codex-plugin/plugin.json` (`scripts/sync-codex-manifests.mjs`) and Hermes `plugin.yaml` + `__init__.py` adapters (`scripts/sync-hermes-manifests.mjs`).",
"version": "2.2.0"
"version": "2.3.0"
},
"plugins": [
{
Expand Down Expand Up @@ -54,7 +54,7 @@
"name": "notebook",
"source": "./plugins/notebook",
"description": "Safe Jupyter notebook editing",
"version": "1.0.1",
"version": "1.0.2",
"category": "development"
},
{
Expand Down Expand Up @@ -89,14 +89,14 @@
"name": "docs-forge",
"source": "./plugins/docs-forge",
"description": "README/CHANGELOG generation with CRO best practices, plus deployment-doc templates and MOC index generation",
"version": "0.3.0",
"version": "0.3.1",
"category": "documentation"
},
{
"name": "slidev",
"source": "./plugins/slidev",
"description": "Slidev markdown presentation generator with interview workflow and KubeCon-level visual enhancement",
"version": "1.2.1",
"version": "1.2.2",
"category": "content"
},
{
Expand Down Expand Up @@ -131,7 +131,7 @@
"name": "project-init",
"source": "./plugins/project-init",
"description": "Agent-harness project lifecycle. `new` — one-shot first-day bootstrap (interview, .claude/ scaffold, minimal CLAUDE.md, AGENTS.md with Codex GitHub cloud reviewer guidelines in general/ml/web variants, README/CHANGELOG seed, gh repo create + initial push) behind a hardened preflight guard that refuses a non-empty cwd. `wiring` — its inverse for existing repos: a read-only 14-axis setup diagnostic (FAIL / WARN / ASK / INFO / SKIP / OK) covering guidance files, .claude/rules paths: scoping defeated by @import, llm-wiki layout + staging backlog, Serena onboarding, memory posture, MCP duplicate registration, Codex CLI posture + AGENTS.md byte budget, spec homes, gws-sync, .tmp, core.hooksPath, .gitignore coverage. ASK answers persist to .claude/state/wiring.json. Shared read-only detector: scripts/project_state.sh.",
"version": "0.4.3",
"version": "0.4.4",
"category": "planning"
},
{
Expand All @@ -145,14 +145,14 @@
"name": "anti-slop-design",
"source": "./plugins/anti-slop-design",
"description": "Anti-AI-slop design guard for web/SaaS landing, decks (PPT), dashboards, and copy. Runs a clarify->context->plan->run->audit->revise flow with a two-phase audit gate (pre-emit self-critique + binary slop checklist) and hands Korean copy rewriting to humanize-korean. Source-grounded in 6 OSS anti-slop repos.",
"version": "0.3.2",
"version": "0.3.3",
"category": "design"
},
{
"name": "tally-form",
"source": "./plugins/tally-form",
"description": "Build Tally questionnaire/survey forms from checklist markdown — deterministic stdlib urllib builder with theme presets (neutral/hermes), section dividers, paragraph-split intros, per-question choices with required + checkbox (multi-select), short-answer inputs (text/number/email/phone/link), native scheduling (matrix grid / date / time), form images (logo/cover/inline IMAGE via hosted URLs incl. GitHub raw shorthand), redirect-on-completion, idempotent publish, and humanize-korean copy routing. Includes dev-survey and lecture-consultation presets plus bundled example fixtures.",
"version": "1.2.1",
"version": "1.2.2",
"category": "content"
},
{
Expand All @@ -166,14 +166,14 @@
"name": "gws-sync",
"source": "./plugins/gws-sync",
"description": "로컬 폴더 → Google Drive 단방향 제안형 동기화 (gws CLI 기반, MCP 아님). 매핑 설정 파일(.gws-sync.json)로 로컬↔Drive 폴더 대응을 기억하고, 실행 시 Drive 트리 탐색 → 신규·변경 diff 리포트 → 업로드 위치 AskUserQuestion 승인 → 업로드(기존 파일은 content update로 ID·공유링크 보존). 삭제는 제안만(자동 삭제 금지), Drive→로컬 다운로드 범위 밖. gws 미설치 시 공식 docs 기반 설치 안내 출력 후 중단(자동 설치 안 함). googleworkspace/cli 공식 스킬/레시피 95종 카탈로그(llms.txt)를 references에 동봉 — 상황에 유용한 미설치 스킬을 npx skills add로 제안.",
"version": "0.1.1",
"version": "0.1.2",
"category": "productivity"
},
{
"name": "mem0-ops",
"source": "./plugins/mem0-ops",
"description": "Fleet-level mem0 diagnostics and cleanup — complements the upstream mem0 plugin (which owns per-project quality). fleet-scan reports per-app noise ratio, junk app_id candidates, and app/user_id fragmentation across all apps; doctor checks config posture (MEM0_RERANK env, ~/.mem0/settings.json auto_save precedence trap, project decay flag, hook timeout budget, identity fragmentation); cleanup does backup-then-delete by metadata.type or whole junk app behind a dry-run default plus a skill-layer per-app confirmation gate (the script alone gates on --execute only). stdlib-only REST scripts, zero LLM cost for the deterministic parts.",
"version": "0.1.1",
"version": "0.1.2",
"category": "productivity"
}
]
Expand Down
1 change: 1 addition & 0 deletions .claude/rules/dual-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Top-level guidance no longer needs mirroring at all: root `CLAUDE.md` is a one-l
- **Keep subagent delegation Claude-only acceleration.** A Claude-side subagent dispatch may only wrap a skill phase whose inline cross-runtime path stays primary and complete — never move skill logic into an agent definition (Codex 0.135 and Hermes have no agents surface, so relocated logic silently vanishes for them).
- **Keep skill `description` frontmatter under 1024 chars.** Codex 0.135 silently skips any skill whose `description` exceeds 1024 characters; Claude Code has no such limit, so the violation is invisible on the Claude side. `--check` validates description length (not just drift), and the shared `.githooks/pre-commit` runs it on every commit — activate once per clone with `git config core.hooksPath .githooks`. Put the full trigger list / per-tool rationale in the skill body, not the description.
- **Quote a skill `description` that contains a colon-space (`: `).** YAML frontmatter parses `description: ...: ...` as a nested mapping and fails with `mapping values are not allowed here`, so the skill silently fails to load on both runtimes. Wrap the value in double quotes (or a `>-` block scalar). `plugin.json` / `marketplace.json` are JSON and unaffected; the lenient manifest generator and `--check` do NOT catch this.
- **Write instruction and skill documentation prose in English.** Skill bodies, bundled reference docs, and plugin `CLAUDE.md` prose are English so all three runtimes — and the Codex GitHub cloud reviewer — read one language. Domain content is exempt and stays in its source language: marketing/UI copy, form presets, humanize samples, illustrative Korean example outputs, and the i18n / trigger phrases inside a skill `description:` frontmatter field (translating those breaks skill matching). A skill whose output is functional content in the user's language (a seeded stub, a runtime message shown to the user) keeps that content as-is — translating it changes what the plugin emits, not just its documentation.
- **Keep shared lore in the neutral root.** Cross-agent insight and wiki content live under `.llmwiki/` (never `.claude/`-only), so both runtimes read one copy.
- **State when a change is intentionally single-surface.** If guidance applies to only one agent (e.g. a Claude-only Plan Mode rule), say so in the change so the asymmetry reads as deliberate, not forgotten.

Expand Down
3 changes: 3 additions & 0 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ node "$repo_root/scripts/sync-codex-manifests.mjs" --check
node "$repo_root/scripts/sync-hermes-manifests.mjs" --check
node "$repo_root/scripts/check-doc-consistency.mjs"
node "$repo_root/scripts/check-skill-tool-portability.mjs" --check
# Skill-prose progressive-disclosure smell detector — INFORMATIONAL ONLY. It exits 0
# regardless, but the `|| true` keeps it non-blocking even if node itself errors.
node "$repo_root/scripts/check-skill-prose.mjs" || true
# Hermes adapter mock-load — same guard CI runs, so import/registration regressions
# in generated __init__.py fail at commit time, not only in CI. Skip (not fail) when
# python3 is absent locally; CI still enforces it.
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/validate-codex.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ jobs:
# interactive-input tool: each AskUserQuestion skill is a mapped pilot or reviewed
# baseline debt. See scripts/check-skill-tool-portability.mjs.
- run: node scripts/check-skill-tool-portability.mjs --check
# Progressive-disclosure smell detector (skill docs > ~500 lines, deep bundled
# references). INFORMATIONAL ONLY — always exits 0, never blocks the run.
- run: node scripts/check-skill-prose.mjs || true
# Import each generated Hermes adapter with a stub ctx and assert register_skill
# fires — catches a generated-but-never-executed adapter regression (PyYAML is
# preinstalled on ubuntu-latest). See scripts/mock-load-hermes.py.
Expand Down
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@
- subagent 위임은 Claude 전용 가속일 뿐이다 — skill 단계의 인라인 크로스런타임 경로가 primary 로 남아야 하고, skill 로직을 agent 정의로 옮기지 않는다 (Codex 0.135 / Hermes 는 agents surface 가 없어 옮긴 로직이 조용히 사라진다).
- wiki lore 는 `.claude/rules/` 로 승격하지 않는다 — Codex/Hermes 가 못 읽는다. cross-agent insight 는 `.llmwiki/insight/` 로 graduate 후 공유 주입 hook 으로 노출한다.
- `.llmwiki/` 를 per-agent 로 fork 하지 않는다.
- Instruction and skill documentation prose is written in English (skill bodies, reference docs, plugin `CLAUDE.md`) so all three runtimes and the Codex cloud reviewer read one language. Domain content is exempt and stays in its source language — copy, form presets, humanize samples, illustrative example outputs, and the i18n / trigger phrases inside a skill `description:` frontmatter field (translating those breaks skill matching).
- **`AGENTS.md` 를 `CLAUDE.md` 로의 포인터로 축약하지 않는다.** Codex/Hermes 는 `@` 를 확장하지 않아 `@CLAUDE.md` 는 죽은 텍스트이고, "CLAUDE.md 를 먼저 읽어라" 식 산문 redirect 는 Codex GitHub cloud reviewer 에 닿지 않는다 (이 리뷰어는 `## Review guidelines` 섹션을 시스템 프롬프트에 직접 로드한다 — 임의 산문 redirect 는 따라가지 않고, `AGENTS.md` 가 명시적으로 참조하는 `code_review.md` 만 예외적으로 따라갈 수 있다[소프트 개런티, best-practices 문서]). 실패는 조용하다 — 에러 없이 지침만 사라진다. 이 저장소는 반대 방향을 택했다: `AGENTS.md` 가 SSOT 이고 `CLAUDE.md` 는 `@AGENTS.md` 한 줄을 import 한다 (`@import` 는 Claude 전용이라 `CLAUDE.md` 쪽에만 두면 되고, Codex/Hermes 는 `AGENTS.md` 를 직접 읽는다). 심볼릭 링크도 같은 효과를 내지만 Windows 체크아웃에서 `core.symlinks` 가 꺼져 있으면 `CLAUDE.md` 가 링크 대상 문자열 그대로 풀려 깨지므로, 포터블한 `@import` 를 택했다.

## Cross-runtime interactive input policy
Expand Down
2 changes: 1 addition & 1 deletion plugins/anti-slop-design/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "anti-slop-design",
"version": "0.3.2",
"version": "0.3.3",
"description": "Anti-AI-slop design guard for web/SaaS landing, decks (PPT), dashboards, and copy. Runs a clarify->context->plan->run->audit->revise flow with a two-phase audit gate (pre-emit self-critique + binary slop checklist) and hands Korean copy rewriting to humanize-korean. Source-grounded in 6 OSS anti-slop repos.",
"skills": ["./skills/anti-slop-design"]
}
2 changes: 1 addition & 1 deletion plugins/anti-slop-design/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "anti-slop-design",
"version": "0.3.2",
"version": "0.3.3",
"description": "Anti-AI-slop design guard for web/SaaS landing, decks (PPT), dashboards, and copy. Runs a clarify->context->plan->run->audit->revise flow with a two-phase audit gate (pre-emit self-critique + binary slop checklist) and hands Korean copy rewriting to humanize-korean. Source-grounded in 6 OSS anti-slop repos.",
"author": {
"name": "YoungjaeDev"
Expand Down
2 changes: 1 addition & 1 deletion plugins/anti-slop-design/plugin.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: anti-slop-design
version: "0.3.2"
version: "0.3.3"
description: "Anti-AI-slop design guard for web/SaaS landing, decks (PPT), dashboards, and copy. Runs a clarify->context->plan->run->audit->revise flow with a two-phase audit gate (pre-emit self-critique + binary slop checklist) and hands Korean copy rewriting to humanize-korean. Source-grounded in 6 OSS anti-slop repos."
author: "YoungjaeDev"
kind: standalone
Loading
Loading