Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
6 changes: 3 additions & 3 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/claude-code-marketplace.json",
"name": "fe-dudu",
"version": "0.2.1",
"version": "0.2.2",
"description": "Frontend engineering and workflow orchestration Agent Skills for TypeScript and React",
"owner": {
"name": "fe-dudu"
Expand Down Expand Up @@ -32,8 +32,8 @@
{
"name": "oh-my-frontend",
"source": "./skills/oh-my-frontend",
"description": "Optional frontend workflow and orchestration for project memory, approval, parallel work, specialist review, and risk-based verification.",
"version": "0.1.1",
"description": "Lightweight frontend triage and orchestration for risk classification, project memory, consequential decisions, safe parallel work, and runtime evidence.",
"version": "0.2.0",
"author": {
"name": "fe-dudu"
},
Expand Down
12 changes: 6 additions & 6 deletions README-ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
[![skills.sh](https://skills.sh/b/fe-dudu/skills)](https://skills.sh/fe-dudu/skills)
[![Claude Code Marketplace](https://img.shields.io/badge/Claude%20Code-Marketplace-8A63D2)](./.claude-plugin/marketplace.json)

TypeScript, React, 협업형 프론트엔드 작업을 위한 두 계층 Agent Skills입니다. 코드 원칙만 필요하면 `frontend-engineering`을 단독으로 사용하고, 작업 오케스트레이션이 필요하면 `oh-my-frontend`를 추가합니다. 각 스킬은 짧은 `SKILL.md`를 제공하며, 상세 지침은 필요할 때만 reference에서 읽습니다.
TypeScript, React, 협업형 프론트엔드 작업을 위한 두 계층 Agent Skills입니다. `oh-my-frontend`는 프론트엔드 task의 가벼운 triage 진입 계층이며, 명확한 기계적 변경은 Level 0으로 끝내고 위험이 있을 때만 memory, 승인, Worker, specialist evidence를 추가합니다. 구현 규칙은 `frontend-engineering`에 둡니다. 각 스킬은 짧은 `SKILL.md`를 제공하며, 상세 지침은 필요할 때만 reference에서 읽습니다.

## 스킬

| 스킬 | 용도 |
| --- | --- |
| [frontend-engineering](./skills/frontend-engineering/) | 읽기 쉽고 명확하며 예측 가능한 TypeScript·React 구현 원칙입니다. |
| [oh-my-frontend](./skills/oh-my-frontend/) | 선택형 프론트엔드 workflow·orchestration 계층입니다. |
| [oh-my-frontend](./skills/oh-my-frontend/) | 프론트엔드 triage·위험 기반 orchestration 계층입니다. |

<details>
<summary><strong>frontend-engineering</strong> — 코드 원칙과 구현 품질</summary>
Expand All @@ -26,15 +26,15 @@ TypeScript, React, 협업형 프론트엔드 작업을 위한 두 계층 Agent S

<details>
<summary><strong>oh-my-frontend</strong> — 문서·승인·에이전트 오케스트레이션</summary>
프로젝트 메모리, 승인, 병렬 작업, specialist review, 위험 기반 검증을 위한 선택형 프론트엔드 workflow·orchestration 계층입니다. 사람과 에이전트의 작업을 조율하며, `frontend-engineering`의 구현 원칙을 대체하지 않습니다.
프론트엔드 task의 triage와 프로젝트 메모리, 승인, 병렬 작업, specialist review, 위험 기반 검증을 담당합니다. 모든 프론트엔드 task가 Level 0 분류를 위해 들어올 수 있지만, 변경 위험이 있을 때만 무거운 workflow를 추가합니다. `frontend-engineering`의 구현 원칙을 대체하지 않습니다.

- Domain language, business rule, feature, decision, architecture를 `/docs`에 장기 메모리로 관리합니다.
- Planner 대화, 필요한 승인, 범위가 제한된 Worker brief, 안전한 병렬 wave를 관리합니다.
- 저장소의 canonical 구조에서 domain language, business rule, feature, decision, architecture를 관리하며, durable 문서 관례가 없을 때만 최소 구조를 추천합니다.
- 관련 blocking question을 묶고, 필요한 승인, 범위가 제한된 Worker brief, 안전한 병렬 lane을 관리합니다.
- Component architecture, UI state, browser·visual verification, accessibility, debugging을 다룹니다.
- Data fetching, routing, performance, security, responsive UI, form, i18n, compatibility, observability를 라우팅합니다.
- TDD나 과도한 테스트 코드를 강제하지 않고 위험 기반으로 테스트합니다.

`docs/*ko/`의 한국어 mirror는 로컬 열람용이며 공개하거나 설치 패키지에 포함하지 않습니다.
`docs/*.ko/`의 한국어 mirror는 로컬 열람용이며 공개하거나 설치 패키지에 포함하지 않습니다.

[SKILL.md](./skills/oh-my-frontend/SKILL.md)부터 읽습니다.
</details>
Expand Down
25 changes: 14 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,18 @@
[![Claude Code Marketplace](https://img.shields.io/badge/Claude%20Code-Marketplace-8A63D2)](./.claude-plugin/marketplace.json)

Two-layer Agent Skills for TypeScript, React, and coordinated frontend work.
Use `frontend-engineering` alone for code principles, or add `oh-my-frontend` as
an orchestration layer. Each skill has a short `SKILL.md`; detailed guidance is
Use `oh-my-frontend` as the lightweight triage entry for frontend tasks. It may
classify mechanical work as Level 0 and adds memory, approval, workers, or
specialist evidence only when risk requires them. Use `frontend-engineering` for
implementation rules. Each skill has a short `SKILL.md`; detailed guidance is
loaded from references only when needed.

## Skills

| Skill | Use it for |
| --- | --- |
| [frontend-engineering](./skills/frontend-engineering/) | Standalone readable, explicit TypeScript and React implementation rules |
| [oh-my-frontend](./skills/oh-my-frontend/) | Optional frontend workflow and orchestration layer |
| [oh-my-frontend](./skills/oh-my-frontend/) | Frontend triage and risk-based orchestration layer |

<details>
<summary><strong>frontend-engineering</strong> — Code principles and implementation quality</summary>
Expand All @@ -31,18 +33,19 @@ Start with [SKILL.md](./skills/frontend-engineering/SKILL.md).

<details>
<summary><strong>oh-my-frontend</strong> — Documentation, approval, and agent orchestration</summary>
Optional frontend workflow and orchestration for project memory, approval,
parallel work, specialist review, and risk-based verification. It coordinates
people and agents; it does not replace `frontend-engineering` implementation
rules.

- Durable `/docs` memory: domain language, business rules, features, decisions, and architecture
- Planner conversation, focused approval, bounded Worker briefs, and safe parallel waves
Frontend task triage and risk-based orchestration for project memory, approval,
parallel work, specialist review, and verification. It may enter any frontend
task, exits clear mechanical work at Level 0, and adds workflow only when the
changed risk requires it. It does not replace `frontend-engineering`
implementation rules.

- Repository-canonical project memory: domain language, business rules, features, decisions, and architecture; recommend a minimal structure only when no durable convention exists
- Batched blocking questions, focused approval, bounded Worker briefs, and safe parallel lanes
- Component architecture, UI state, browser/visual verification, accessibility, and debugging
- Data fetching, routing, performance, security, responsive UI, forms, i18n, compatibility, and observability routing
- Risk-based testing without mandatory TDD or excessive test code

Korean mirrors under `docs/*ko/` are local reading notes and are not published or included in installed packages.
Korean mirrors under `docs/*.ko/` are local reading notes and are not published or included in installed packages.

Start with [SKILL.md](./skills/oh-my-frontend/SKILL.md).
</details>
Expand Down
14 changes: 12 additions & 2 deletions Taskfile.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
version: '3'

vars:
SKILLS_DIR: ./skills
LINT_DIR: ./lint
EVALS_DIR: ./evals

Expand All @@ -24,6 +23,8 @@ tasks:
- ./skill-lint ../skills
sources:
- '*.go'
- 'go.mod'
- 'go.sum'
- '../skills/**/*.md'
generates:
- skill-lint
Expand All @@ -35,6 +36,8 @@ tasks:
- go build -o skill-lint .
sources:
- '*.go'
- 'go.mod'
- 'go.sum'
generates:
- skill-lint

Expand All @@ -51,16 +54,23 @@ tasks:
- go build -o skill-eval .
sources:
- '*.go'
- 'go.mod'
- 'evals.json'
generates:
- skill-eval

eval:test:
desc: Run static eval grader unit tests
dir: '{{.EVALS_DIR}}'
cmds:
- go test ./...

eval:grade:
desc: Grade a skill-creator workspace with static assertions
deps:
- eval:build
cmds:
- '{{.EVALS_DIR}}/skill-eval --workspace {{.CLI_ARGS}}'
- '{{.EVALS_DIR}}/skill-eval {{.CLI_ARGS}}'

check:
desc: Run discovery, linter, and linter tests
Expand Down
10 changes: 6 additions & 4 deletions evals/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,22 @@ Static assertion grader for skill-creator eval workspaces. It applies the assert
Prerequisites: [Task](https://taskfile.dev) and Go 1.25+.

```bash
task eval:grade -- /path/to/workspace
task eval:grade -- /path/to/workspace/iteration-1
task eval:grade -- --skill oh-my-frontend --workspace /path/to/workspace
task eval:grade -- --skill frontend-engineering --workspace /path/to/workspace/iteration-1
task eval:test
```

## Adding cases

Add cases under the `frontend-engineering` entry in `evals.json`.
Add cases under the corresponding skill entry in `evals.json`. Eval IDs are
scoped to a skill, so `--skill` is required when grading. The grader rejects
workspace `eval-*` directories that are not defined for the selected skill.

| Field | Required | Meaning |
| --- | --- | --- |
| `id` | yes | Numeric ID matching `eval-N` in the evaluation workspace |
| `prompt` | yes | User-like task prompt |
| `should_trigger` | no | Whether the skill should activate; defaults to `true` |
| `expected_output` | no | Human-readable expected behavior |
| `assertions` | no | Static checks against generated output |

Supported assertions:
Expand Down
Loading
Loading