@tinygem/soda-agent 0.1.0 → 0.1.1
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/LICENSE +52 -0
- package/README.ko.md +107 -0
- package/README.md +107 -0
- package/package.json +2 -2
package/LICENSE
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
tinygem Proprietary License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 tinygem. All rights reserved.
|
|
4
|
+
|
|
5
|
+
1. GRANT OF LICENSE
|
|
6
|
+
|
|
7
|
+
This software is licensed, not sold. tinygem grants you a limited,
|
|
8
|
+
non-exclusive, non-transferable, revocable license to use this software
|
|
9
|
+
solely for your internal purposes, provided that you hold a valid invite
|
|
10
|
+
code or license key issued by tinygem.
|
|
11
|
+
|
|
12
|
+
2. RESTRICTIONS
|
|
13
|
+
|
|
14
|
+
You may NOT:
|
|
15
|
+
(a) redistribute, sublicense, sell, lease, or otherwise transfer this
|
|
16
|
+
software or any portion thereof to any third party;
|
|
17
|
+
(b) modify, adapt, translate, reverse engineer, decompile, or
|
|
18
|
+
disassemble this software;
|
|
19
|
+
(c) remove or alter any proprietary notices, labels, or marks on this
|
|
20
|
+
software;
|
|
21
|
+
(d) use this software without a valid invite code or license key;
|
|
22
|
+
(e) share, publish, or disclose your invite code or license key to
|
|
23
|
+
any third party.
|
|
24
|
+
|
|
25
|
+
3. SOURCE CODE VISIBILITY
|
|
26
|
+
|
|
27
|
+
The source code of this software may be publicly viewable for
|
|
28
|
+
transparency purposes. Visibility of the source code does NOT
|
|
29
|
+
constitute a grant of any rights to use, copy, modify, or distribute
|
|
30
|
+
the software. All rights not expressly granted herein are reserved.
|
|
31
|
+
|
|
32
|
+
4. TERMINATION
|
|
33
|
+
|
|
34
|
+
This license is effective until terminated. Your rights under this
|
|
35
|
+
license will terminate automatically and immediately if you fail to
|
|
36
|
+
comply with any term of this license. Upon termination, you must
|
|
37
|
+
cease all use of the software.
|
|
38
|
+
|
|
39
|
+
5. DISCLAIMER OF WARRANTIES
|
|
40
|
+
|
|
41
|
+
THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
42
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
43
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
|
|
44
|
+
NONINFRINGEMENT. IN NO EVENT SHALL TINYGEM BE LIABLE FOR ANY CLAIM,
|
|
45
|
+
DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT,
|
|
46
|
+
OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE
|
|
47
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
48
|
+
|
|
49
|
+
6. GOVERNING LAW
|
|
50
|
+
|
|
51
|
+
This license shall be governed by and construed in accordance with
|
|
52
|
+
the laws of the Republic of Korea.
|
package/README.ko.md
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# soda
|
|
2
|
+
|
|
3
|
+
**Claude Code 기반으로 태스크를 끝까지 완수하는 자율 개발 에이전트.**
|
|
4
|
+
|
|
5
|
+
[English](./README.md)
|
|
6
|
+
|
|
7
|
+
## soda란?
|
|
8
|
+
|
|
9
|
+
soda는 Claude Code 위에 구축된 완전 자율 멀티페이즈 개발 에이전트입니다. 각 단계마다 새로운 Claude 세션을 생성하여 컨텍스트 열화를 방지하며, 연속 검증을 통과할 때까지 반복 실행합니다.
|
|
10
|
+
|
|
11
|
+
## 주요 특징
|
|
12
|
+
|
|
13
|
+
- **멀티페이즈 사이클** — CLARIFY → IMPLEMENT → VERIFY → DONE
|
|
14
|
+
- **단계별 새로운 컨텍스트** — 각 단계를 새로운 `claude -p` 세션으로 실행하여 컨텍스트 윈도우 열화 방지
|
|
15
|
+
- **연속 검증** — 2회 연속 검증 통과 필요 (리팩토링 작업은 5회)
|
|
16
|
+
- **상태 영속화** — `.soda/state.json`에 진행 상태 저장, `--resume`으로 언제든 재개 가능
|
|
17
|
+
- **서킷 브레이커** — 과도한 반복, 시간 초과, 연속 실패 시 자동 중단
|
|
18
|
+
- **초대 코드 인증** — SHA-256 해시 기반 접근 제어
|
|
19
|
+
|
|
20
|
+
## 선행 요구사항
|
|
21
|
+
|
|
22
|
+
- [Claude Code](https://claude.ai/claude-code)가 설치되어 있고 PATH에서 `claude`로 실행 가능해야 함
|
|
23
|
+
- Node.js >= 18
|
|
24
|
+
- `claude --dangerously-skip-permissions`를 1회 실행하여 약관 동의
|
|
25
|
+
- 유효한 **초대 코드**
|
|
26
|
+
|
|
27
|
+
## 설치
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# 바로 실행
|
|
31
|
+
npx @tinygem/soda-agent "작업 설명"
|
|
32
|
+
|
|
33
|
+
# 또는 전역 설치
|
|
34
|
+
npm install -g @tinygem/soda-agent
|
|
35
|
+
soda "작업 설명"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
첫 실행 시 초대 코드를 입력하라는 프롬프트가 나타납니다. 환경변수로도 설정할 수 있습니다:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
export SODA_INVITE_CODE=your-code
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## 사용법
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# 새 작업 시작
|
|
48
|
+
soda "JWT 기반 사용자 인증 구현"
|
|
49
|
+
|
|
50
|
+
# 이전 작업 재개
|
|
51
|
+
soda --resume
|
|
52
|
+
|
|
53
|
+
# 저장된 상태 삭제
|
|
54
|
+
soda --clear
|
|
55
|
+
|
|
56
|
+
# 제한 설정 변경
|
|
57
|
+
soda "결제 모듈 리팩토링" --max-iterations 100 --max-time 300
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### CLI 옵션
|
|
61
|
+
|
|
62
|
+
| 옵션 | 설명 | 기본값 |
|
|
63
|
+
|------|------|--------|
|
|
64
|
+
| `--resume` | 저장된 상태에서 이전 작업 재개 | — |
|
|
65
|
+
| `--clear` | 저장된 상태 삭제 후 새로 시작 | — |
|
|
66
|
+
| `--max-iterations <n>` | 최대 반복 횟수 | 50 |
|
|
67
|
+
| `--max-time <분>` | 최대 실행 시간(분) | 180 |
|
|
68
|
+
|
|
69
|
+
## Claude Code 플러그인
|
|
70
|
+
|
|
71
|
+
soda는 Claude Code 플러그인으로도 사용할 수 있습니다.
|
|
72
|
+
|
|
73
|
+
### 플러그인 설치
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
claude plugin add npm:@tinygem/soda-agent
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 플러그인 명령
|
|
80
|
+
|
|
81
|
+
| 명령 | 설명 |
|
|
82
|
+
|------|------|
|
|
83
|
+
| `/soda <작업>` | soda를 실행하여 작업을 자율적으로 완수 |
|
|
84
|
+
| `/soda-status` | 현재 진행 상황 확인 (단계, 반복 횟수, 상태) |
|
|
85
|
+
| `/soda-cancel` | 실행 중인 에이전트 정상 종료 |
|
|
86
|
+
|
|
87
|
+
## 작동 방식
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
┌─────────┐ ┌───────────┐ ┌────────┐ ┌──────┐
|
|
91
|
+
│ CLARIFY │ ──→ │ IMPLEMENT │ ──→ │ VERIFY │ ──→ │ DONE │
|
|
92
|
+
└─────────┘ └───────────┘ └────────┘ └──────┘
|
|
93
|
+
↑ ↑ │
|
|
94
|
+
│ └───── FAIL ─────┘
|
|
95
|
+
│ (재시도)
|
|
96
|
+
└── 명확화 필요
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
1. **CLARIFY** — 요청을 분석하고, 필요 시 질문하여 목표를 확정
|
|
100
|
+
2. **IMPLEMENT** — 전체 컨텍스트가 포함된 새로운 Claude 세션으로 코드 생성
|
|
101
|
+
3. **VERIFY** — 완성 조건에 대해 독립적으로 검증
|
|
102
|
+
4. **DONE** — 연속 검증 통과 후 작업 완료
|
|
103
|
+
|
|
104
|
+
## 라이선스
|
|
105
|
+
|
|
106
|
+
이 소프트웨어는 독점 소프트웨어입니다. 사용하려면 유효한 초대 코드가 필요합니다.
|
|
107
|
+
자세한 내용은 [LICENSE](./LICENSE)를 참고하세요.
|
package/README.md
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# soda
|
|
2
|
+
|
|
3
|
+
**Autonomous development agent that completes tasks end-to-end using Claude Code.**
|
|
4
|
+
|
|
5
|
+
[한국어](./README.ko.md)
|
|
6
|
+
|
|
7
|
+
## What is soda?
|
|
8
|
+
|
|
9
|
+
soda is a fully autonomous multi-phase development agent built on top of Claude Code. It spawns fresh Claude sessions for each phase to prevent context degradation, and runs an iterative cycle until the task passes consecutive verification rounds.
|
|
10
|
+
|
|
11
|
+
## Key Features
|
|
12
|
+
|
|
13
|
+
- **Multi-phase cycle** — CLARIFY → IMPLEMENT → VERIFY → DONE
|
|
14
|
+
- **Fresh context per phase** — Each phase runs in a new `claude -p` session, preventing context window degradation
|
|
15
|
+
- **Consecutive verification** — Must pass 2 consecutive verify rounds (5 for refactoring tasks)
|
|
16
|
+
- **State persistence** — Progress saved to `.soda/state.json`; resume anytime with `--resume`
|
|
17
|
+
- **Circuit breaker** — Auto-stops on excessive iterations, time limits, or consecutive failures
|
|
18
|
+
- **Invite code auth** — Access controlled via SHA-256 hashed invite codes
|
|
19
|
+
|
|
20
|
+
## Prerequisites
|
|
21
|
+
|
|
22
|
+
- [Claude Code](https://claude.ai/claude-code) installed and available as `claude` in PATH
|
|
23
|
+
- Node.js >= 18
|
|
24
|
+
- Run `claude --dangerously-skip-permissions` once to accept the terms
|
|
25
|
+
- A valid **invite code**
|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Run directly
|
|
31
|
+
npx @tinygem/soda-agent "your task description"
|
|
32
|
+
|
|
33
|
+
# Or install globally
|
|
34
|
+
npm install -g @tinygem/soda-agent
|
|
35
|
+
soda "your task description"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
On first run, you will be prompted for an invite code. You can also set it via environment variable:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
export SODA_INVITE_CODE=your-code
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Usage
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Start a new task
|
|
48
|
+
soda "Implement user authentication with JWT"
|
|
49
|
+
|
|
50
|
+
# Resume a previous task
|
|
51
|
+
soda --resume
|
|
52
|
+
|
|
53
|
+
# Clear saved state
|
|
54
|
+
soda --clear
|
|
55
|
+
|
|
56
|
+
# Custom limits
|
|
57
|
+
soda "Refactor the payment module" --max-iterations 100 --max-time 300
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### CLI Options
|
|
61
|
+
|
|
62
|
+
| Option | Description | Default |
|
|
63
|
+
|--------|-------------|---------|
|
|
64
|
+
| `--resume` | Resume previous task from saved state | — |
|
|
65
|
+
| `--clear` | Delete saved state and start fresh | — |
|
|
66
|
+
| `--max-iterations <n>` | Maximum iteration count | 50 |
|
|
67
|
+
| `--max-time <minutes>` | Maximum execution time in minutes | 180 |
|
|
68
|
+
|
|
69
|
+
## Claude Code Plugin
|
|
70
|
+
|
|
71
|
+
soda can also run as a Claude Code plugin.
|
|
72
|
+
|
|
73
|
+
### Install Plugin
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
claude plugin add npm:@tinygem/soda-agent
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Plugin Commands
|
|
80
|
+
|
|
81
|
+
| Command | Description |
|
|
82
|
+
|---------|-------------|
|
|
83
|
+
| `/soda <task>` | Launch soda to complete a task autonomously |
|
|
84
|
+
| `/soda-status` | Check current progress (phase, iteration, status) |
|
|
85
|
+
| `/soda-cancel` | Gracefully stop the running agent |
|
|
86
|
+
|
|
87
|
+
## How It Works
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
┌─────────┐ ┌───────────┐ ┌────────┐ ┌──────┐
|
|
91
|
+
│ CLARIFY │ ──→ │ IMPLEMENT │ ──→ │ VERIFY │ ──→ │ DONE │
|
|
92
|
+
└─────────┘ └───────────┘ └────────┘ └──────┘
|
|
93
|
+
↑ ↑ │
|
|
94
|
+
│ └───── FAIL ─────┘
|
|
95
|
+
│ (retry)
|
|
96
|
+
└── needs clarification
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
1. **CLARIFY** — Analyzes the request, asks questions if needed, confirms the goal
|
|
100
|
+
2. **IMPLEMENT** — Generates code using a fresh Claude session with full context
|
|
101
|
+
3. **VERIFY** — Independent verification against completion criteria
|
|
102
|
+
4. **DONE** — Task complete after consecutive verification passes
|
|
103
|
+
|
|
104
|
+
## License
|
|
105
|
+
|
|
106
|
+
This software is proprietary. A valid invite code is required to use it.
|
|
107
|
+
See [LICENSE](./LICENSE) for details.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tinygem/soda-agent",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "자율 개발 에이전트 - Claude Code 기반으로 태스크를 끝까지 완수한다",
|
|
5
5
|
"bin": {
|
|
6
6
|
"soda-agent": "dist/cli.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"node": ">=18"
|
|
25
25
|
},
|
|
26
26
|
"type": "module",
|
|
27
|
-
"license": "
|
|
27
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
28
28
|
"publishConfig": {
|
|
29
29
|
"access": "public"
|
|
30
30
|
}
|