작년에 spec-kit을 뜯어서 직접 하네스(?)를 만들었다.
얼마 지나지 않았는데 벌써 구형이 되서 써먹을 수 없게 되었다.
새로운 하네스를 만들어야 된다.
최소한 ‘멀티 에이전트’와 ‘컴파운드 엔지니어링’을 갖추고 있어야 한다.
1. Oh My OpenAgent
구 Oh My OpenCode다.
나랑 잘 맞지 않는다.
Prometheus, Atlas, Hephaestus 이름부터 어렵다.
2. Oh My Opencode Slim
3. Superpowers
직접 열어서 내용을 확인해봤다.
생각보다 가볍다.
skill의 길이도 짧고 단순했다.
확실히 완성도가 높게 잘 만들어졌다.
실제로 잘 동작했다.
4. Compound Engineering Plugin
유튜버 제로초님이 superpowers에 compound-engineering-plugin의 일부를 섞어서 쓴다고 했다.
바로 한번 시도해봤다.
많은 기능을 제공하는데 사실 ce-compound만 필요했다.
ce-compound는 해결한 문제를 재사용 가능한 Markdown 문서로 남기는 마무리 루프다.
자동으로 코드를 고치거나 모델을 학습시키는 기능은 아니고, repo 안에 docs/solutions/ 지식 저장소를 만들고 이후 CE 계열 스킬들이 그 문서를 다시 읽게 하는 방식이다.
지금 너는 superpowers 플러그인이 설치되어있을거야. 그지?
나는 다 좋은데 compound engineering이 적용되어있지 않아서 불편해.
---
1. brainstorming - Activates before writing code. Refines rough ideas through questions, explores alternatives, presents design in sections for validation. Saves design document.
2. using-git-worktrees - Activates after design approval. Creates isolated workspace on new branch, runs project setup, verifies clean test baseline.
3. writing-plans - Activates with approved design. Breaks work into bite-sized tasks (2-5 minutes each). Every task has exact file paths, complete code, verification steps.
4. subagent-driven-development or executing-plans - Activates with plan. Dispatches fresh subagent per task with two-stage review (spec compliance, then code quality), or executes in batches with human checkpoints.
5. test-driven-development - Activates during implementation. Enforces RED-GREEN-REFACTOR: write failing test, watch it fail, write minimal code, watch it pass, commit. Deletes code written before tests.
6. requesting-code-review - Activates between tasks. Reviews against plan, reports issues by severity. Critical issues block progress.
7. finishing-a-development-branch - Activates when tasks complete. Verifies tests, presents options (merge/PR/keep/discard), cleans up worktree.
---
superpowers의 requesting-code-review와 finishing-a-development-branch 사이에 compound-engineering-plugin의 `/ce-compound`만 끼워넣었으면 좋겠음.
- [ce-compound.md](https://github.com/EveryInc/compound-engineering-plugin/blob/main/docs/skills/ce-compound.md)
- [obra/superpowers](https://github.com/obra/superpowers)
너가 codex라면 codex에 맞게, opencode면 opencode에 맞게, hermes면 hermes에 맞게 적용해봐.
일단 이것과 관련되서 궁금한 점 있으면 물어봐. 없으면 실행계획을 작성해라.
Code language: JavaScript (javascript)
그래서 위 프롬프트를 넣어서 이 부분만 적용시켜 보았다.
superpowers 원본 skill 파일은 건드리지 않고, ce-compound skill을 추가하는 방식으로 진행했다.
requesting-code-review 이후, finishing-a-development-branch 이전에 compound capture 수행하도록 했다.
- AGENTS.md
## Local Superpowers Overlay
When using Superpowers for implementation work, check `ce-compound` after `superpowers:requesting-code-review` passes and before `superpowers:finishing-a-development-branch`. Capture a verified, non-trivial reusable lesson to `docs/solutions/` in project root (plz not in global config), or explicitly note that the capture gate was considered and skipped.
Code language: PHP (php)
- SKILL.md
---
name: ce-compound
description: Use when a Superpowers implementation has passed requesting-code-review and before using finishing-a-development-branch, or when the user says a non-trivial fix is working, fixed, solved, shipped, or worth remembering. Also use when asked to capture a reusable lesson, solution, convention, debugging result, or project learning in docs/solutions.
---
# CE Compound
## Overview
Capture verified, reusable engineering learning before branch completion. This is a Codex-local adaptation of Compound Engineering's `/ce-compound`: it writes institutional memory to the current repository instead of modifying the installed Superpowers plugin.
## Placement in Superpowers
Use this skill after `superpowers:requesting-code-review` has no Critical or Important blockers and before `superpowers:finishing-a-development-branch`.
Do not run it for every task. Run it only when the completed work produced a lesson that would save future investigation time.
## Capture Gate
Proceed only when all are true:
- The solution is verified by tests, review, or direct user confirmation.
- The learning is non-trivial: debugging path, root cause, failed attempts, architecture choice, convention, workflow fix, integration detail, performance/security/data lesson, or other reusable guidance.
- The current repository is a reasonable place to store the learning.
Skip when:
- The fix is a typo, formatting-only change, simple dependency bump, or purely mechanical edit.
- The solution is still speculative or unverified.
- The lesson belongs in an external runbook or product doc instead of the repo.
## Workflow
1. Summarize the learning in one sentence.
2. Classify it as `bug` or `knowledge`.
3. Search existing docs before writing:
- Prefer `rg -n "<keywords>" docs/solutions AGENTS.md CLAUDE.md` when those paths exist.
- If `docs/solutions` does not exist, create it only when capture proceeds.
4. Decide whether to update an existing doc or create a new one:
- High overlap in problem, root cause, solution, files, and prevention: update the existing doc.
- Partial overlap: create a new doc and add a "Related" link.
- Low overlap: create a new doc.
5. Write the doc under `docs/solutions/[category]/[slug].md`.
6. Check discoverability. If `AGENTS.md` or `CLAUDE.md` exists and does not mention `docs/solutions`, propose the smallest edit that tells future agents to check it before planning or debugging. Ask before applying that edit.
7. Continue to `superpowers:finishing-a-development-branch` only after capture is complete or intentionally skipped.
## Categories
Use the closest existing category if one exists. Otherwise choose one of:
- Bug track: `build-errors`, `test-failures`, `runtime-errors`, `performance-issues`, `database-issues`, `security-issues`, `ui-bugs`, `integration-issues`, `logic-errors`
- Knowledge track: `architecture-patterns`, `design-patterns`, `tooling-decisions`, `conventions`, `workflow-issues`, `developer-experience`, `documentation-gaps`, `best-practices`
## Document Shape
Use YAML frontmatter:
```yaml
---
title: Short descriptive title
date: YYYY-MM-DD
last_updated: YYYY-MM-DD
problem_type: performance_issue
track: bug
module: affected-area
tags:
- short-keyword
---
```
For bug track:
```markdown
# Short descriptive title
## Symptoms
What failed, how it showed up, and how to recognize it.
## Root Cause
The concrete cause. Name files, APIs, configuration, assumptions, or data shape when relevant.
## What Did Not Work
Failed attempts, misleading hypotheses, and dead ends worth avoiding.
## Solution
The working fix. Include commands, code references, or before/after snippets only when they help future recovery.
## Why This Works
The mechanism that makes the solution correct.
## Prevention
Tests, checks, conventions, or review heuristics that would catch this earlier.
## Related
Links to related docs, PRs, issues, or files.
```
For knowledge track:
```markdown
# Short descriptive title
## Context
The situation or decision that produced the learning.
## Guidance
The durable rule or pattern to follow.
## Why This Matters
The cost avoided or property preserved.
## When to Apply
Signals that this guidance is relevant, plus boundaries where it is not.
## Examples
Concrete examples from the repo when useful.
## Related
Links to related docs, PRs, issues, or files.
```
## Notes
- Use `apply_patch` for manual edits.
- Keep captures concise and factual; avoid transcript-style narration.
- Do not claim the branch is complete until the capture gate has been handled.
- If no reusable learning exists, say that `ce-compound` was considered and skipped, then proceed to `superpowers:finishing-a-development-branch`.Code language: Markdown (markdown)
5. Everything Claude Code
6. gstack
7. Ouroboros
아직 많이 부족하지만 빠르게 발전하고 있다.
가장 성장 가능성이 높다.
실제로 사용해보니 불편했다.
아직 완성도가 낮다는 느낌을 받았다.
나랑 잘 안맞는 것 같다.
8. 나의 세팅
실제 경험은 superpowers가 압도적으로 좋았다.
이걸 중심으로 몇가지 스킬을 추가할 것 같다.
일단 superpowers 설치 후 compound-engineering의 ce-compound skill을 추가해서 사용하는 것이 가장 마음에 든다.
여담이지만 의외로 29000원 ChatGPT Plus 플랜으로도 꽤 많은 작업을 할 수 있었다.
5배 플랜은 너무 낭비가 심해서 계정을 하나 더 만들어서 ChatGPT Plus을 하나 더 결제했다.