triples-agentic 2.4.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/LICENSE +21 -0
- package/README.md +326 -0
- package/docs/workflow.md +163 -0
- package/install.sh +98 -0
- package/package.json +54 -0
- package/src/agents/README.md +85 -0
- package/src/agents/jiwoo-prd.md +84 -0
- package/src/agents/kaede-backend.md +95 -0
- package/src/agents/kotone-flutter.md +100 -0
- package/src/agents/lynn-testcase.md +92 -0
- package/src/agents/nakyoung-tasks.md +89 -0
- package/src/agents/seoyeon.md +76 -0
- package/src/agents/shion-qa.md +89 -0
- package/src/agents/sohyun-ios.md +97 -0
- package/src/agents/yeonji-android.md +98 -0
- package/src/agents/yooyeon-rfc.md +82 -0
- package/src/agents/yubin-frontend.md +88 -0
- package/src/bin/setup.js +640 -0
- package/src/hooks/README.md +102 -0
- package/src/hooks/dangerous-commands.json +33 -0
- package/src/hooks/dangerous-commands.md +18 -0
- package/src/knowledge/README.md +129 -0
- package/src/knowledge/general/boy-scout-rule.md +13 -0
- package/src/knowledge/general/composition-over-inheritance.md +14 -0
- package/src/knowledge/general/dry.md +14 -0
- package/src/knowledge/general/fail-fast.md +13 -0
- package/src/knowledge/general/kiss.md +15 -0
- package/src/knowledge/general/least-surprise.md +13 -0
- package/src/knowledge/general/slap.md +29 -0
- package/src/knowledge/general/solid.md +44 -0
- package/src/knowledge/general/tdd.md +76 -0
- package/src/knowledge/general/yagni.md +12 -0
- package/src/knowledge/mobile/android/android-architecture.md +83 -0
- package/src/knowledge/mobile/android/android-platform.md +60 -0
- package/src/knowledge/mobile/android/kotlin-concurrency.md +75 -0
- package/src/knowledge/mobile/android/kotlin-core.md +88 -0
- package/src/knowledge/mobile/flutter/dart-async.md +93 -0
- package/src/knowledge/mobile/flutter/dart-core.md +97 -0
- package/src/knowledge/mobile/flutter/flutter-architecture.md +88 -0
- package/src/knowledge/mobile/flutter/flutter-platform.md +79 -0
- package/src/knowledge/mobile/ios/ios-architecture.md +88 -0
- package/src/knowledge/mobile/ios/ios-platform.md +66 -0
- package/src/knowledge/mobile/ios/swift-concurrency.md +99 -0
- package/src/knowledge/mobile/ios/swift-core.md +79 -0
- package/src/knowledge/planning/architecture-database.md +47 -0
- package/src/knowledge/planning/architecture-patterns.md +64 -0
- package/src/knowledge/planning/architecture-security.md +61 -0
- package/src/knowledge/planning/estimation.md +82 -0
- package/src/knowledge/planning/orchestration.md +70 -0
- package/src/knowledge/planning/prd-quality-gates.md +38 -0
- package/src/knowledge/planning/prd-writing.md +59 -0
- package/src/knowledge/planning/product-principles.md +48 -0
- package/src/knowledge/planning/product-prioritization.md +45 -0
- package/src/knowledge/planning/rfc-quality-gates.md +38 -0
- package/src/knowledge/planning/rfc-writing.md +81 -0
- package/src/knowledge/planning/task-decomposition.md +61 -0
- package/src/knowledge/planning/task-readiness.md +64 -0
- package/src/knowledge/quality/qa-execution.md +55 -0
- package/src/knowledge/quality/qa-reporting.md +71 -0
- package/src/knowledge/quality/test-case-quality.md +61 -0
- package/src/knowledge/quality/test-case-writing.md +76 -0
- package/src/knowledge/quality/testing-strategy.md +70 -0
- package/src/knowledge/quality/testing-types.md +84 -0
- package/src/knowledge/web/backend/api-design.md +74 -0
- package/src/knowledge/web/backend/api-security.md +54 -0
- package/src/knowledge/web/backend/backend-security.md +84 -0
- package/src/knowledge/web/backend/backend-structure.md +78 -0
- package/src/knowledge/web/frontend/frontend-components.md +49 -0
- package/src/knowledge/web/frontend/frontend-performance.md +41 -0
- package/src/knowledge/web/frontend/frontend-state.md +59 -0
- package/src/knowledge/web/frontend/web-accessibility.md +51 -0
- package/src/knowledge/web/frontend/web-performance.md +51 -0
- package/src/knowledge/web/frontend/web-security.md +59 -0
- package/src/templates/prd.md +109 -0
- package/src/templates/rfc.md +156 -0
- package/src/templates/task-breakdown.md +172 -0
- package/src/templates/test-case.md +157 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 PAU Labs
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
# triples-agentic
|
|
2
|
+
|
|
3
|
+
A platform-agnostic software engineering agent orchestrator, named after the 24-member K-pop group **TripleS**.
|
|
4
|
+
|
|
5
|
+
11 specialized agents covering the full product-to-delivery lifecycle — from PRD to RFC, task breakdown, implementation across 5 platforms, test cases, and QA.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Agent Roster
|
|
10
|
+
|
|
11
|
+
| S# | Agent | Persona | Role |
|
|
12
|
+
|----|-------|---------|------|
|
|
13
|
+
| S1 | **SeoYeon** | Engineering Manager | Main Orchestrator |
|
|
14
|
+
| S3 | **JiWoo** | Senior Product Manager | PRD Agent |
|
|
15
|
+
| S5 | **YooYeon** | Staff Engineer / Tech Lead | RFC Agent |
|
|
16
|
+
| S7 | **NaKyoung** | Technical Program Manager | Task Breakdown |
|
|
17
|
+
| S8 | **YuBin** | Principal Frontend Engineer | Frontend Web |
|
|
18
|
+
| S9 | **Kaede** | Principal Backend Engineer | Backend |
|
|
19
|
+
| S12 | **YeonJi** | Senior Android Engineer | Android Native (Kotlin) |
|
|
20
|
+
| S14 | **SoHyun** | Senior iOS Engineer | iOS Native (Swift) |
|
|
21
|
+
| S11 | **Kotone** | Senior Flutter Engineer | Flutter (Dart) |
|
|
22
|
+
| S17 | **Lynn** | QA Lead / Test Lead | Test Cases |
|
|
23
|
+
| S20 | **ShiOn** | Senior QA Automation Engineer | QA Execution |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
User → SeoYeon (EM)
|
|
31
|
+
→ JiWoo (PRD) [human review loop]
|
|
32
|
+
→ YooYeon (RFC) [human review loop]
|
|
33
|
+
→ NaKyoung (Tasks) [human review loop]
|
|
34
|
+
→ YuBin + Kaede + YeonJi + SoHyun + Kotone [parallel dev]
|
|
35
|
+
+ Lynn (Test Cases) [human review loop]
|
|
36
|
+
→ ShiOn (QA) → Go/No-Go
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Full Mermaid diagram: [docs/workflow.md](docs/workflow.md)
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Installation
|
|
44
|
+
|
|
45
|
+
### Install via curl (recommended)
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
curl -fsSL https://raw.githubusercontent.com/pauplayground007/triples-agentic/main/install.sh | bash
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Checks Node.js ≥ 18, then launches the interactive wizard.
|
|
52
|
+
|
|
53
|
+
Pass a platform directly to skip the wizard:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Claude Code — project-level
|
|
57
|
+
curl -fsSL https://raw.githubusercontent.com/pauplayground007/triples-agentic/main/install.sh | bash -s -- claude
|
|
58
|
+
|
|
59
|
+
# Claude Code — global (all projects on your machine)
|
|
60
|
+
curl -fsSL https://raw.githubusercontent.com/pauplayground007/triples-agentic/main/install.sh | bash -s -- claude --global
|
|
61
|
+
|
|
62
|
+
# Cursor AI — global
|
|
63
|
+
curl -fsSL https://raw.githubusercontent.com/pauplayground007/triples-agentic/main/install.sh | bash -s -- cursor --global
|
|
64
|
+
|
|
65
|
+
# All platforms at once
|
|
66
|
+
curl -fsSL https://raw.githubusercontent.com/pauplayground007/triples-agentic/main/install.sh | bash -s -- all
|
|
67
|
+
|
|
68
|
+
# Update all existing installations (auto-detects platforms and scope)
|
|
69
|
+
curl -fsSL https://raw.githubusercontent.com/pauplayground007/triples-agentic/main/install.sh | bash -s -- update
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
### Interactive wizard
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
npx triples-agentic
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
╔══════════════════════════════════════════════════╗
|
|
82
|
+
║ TripleS Agentic — Skill Plugin Setup ║
|
|
83
|
+
║ Software Engineering Agent Orchestrator ║
|
|
84
|
+
╚══════════════════════════════════════════════════╝
|
|
85
|
+
|
|
86
|
+
Which coding assistant are you installing for?
|
|
87
|
+
1. Claude Code
|
|
88
|
+
2. Cursor AI
|
|
89
|
+
3. GitHub Copilot
|
|
90
|
+
4. OpenAI Codex
|
|
91
|
+
5. Windsurf
|
|
92
|
+
6. All of the above
|
|
93
|
+
|
|
94
|
+
Install scope?
|
|
95
|
+
1. Global — applies to all your projects (~/.claude/skills/)
|
|
96
|
+
2. Project — current directory only (./.claude/skills/)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### Direct install (non-interactive)
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Project-level (run inside your project directory)
|
|
105
|
+
npx triples-agentic claude # Claude Code
|
|
106
|
+
npx triples-agentic cursor # Cursor AI
|
|
107
|
+
npx triples-agentic copilot # GitHub Copilot
|
|
108
|
+
npx triples-agentic codex # OpenAI Codex
|
|
109
|
+
npx triples-agentic windsurf # Windsurf
|
|
110
|
+
npx triples-agentic all # all platforms
|
|
111
|
+
|
|
112
|
+
# Global install
|
|
113
|
+
npx triples-agentic claude --global # → ~/.claude/skills/
|
|
114
|
+
npx triples-agentic cursor --global # → ~/.cursor/rules/
|
|
115
|
+
npx triples-agentic codex --global # → ~/.codex/AGENTS.md
|
|
116
|
+
npx triples-agentic windsurf --global # → ~/.codeium/windsurf/rules/
|
|
117
|
+
|
|
118
|
+
# Install into a specific directory
|
|
119
|
+
npx triples-agentic claude --target /path/to/project
|
|
120
|
+
|
|
121
|
+
# Update all existing installations (auto-detects platforms and scope)
|
|
122
|
+
npx triples-agentic update
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
### Install as a global CLI
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
npm install -g triples-agentic
|
|
131
|
+
triples-agentic # interactive wizard
|
|
132
|
+
triples-agentic claude # direct install for Claude Code
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
### Files installed per platform
|
|
138
|
+
|
|
139
|
+
| Platform | Agent skills | Hook config |
|
|
140
|
+
|---|---|---|
|
|
141
|
+
| **Claude Code** | `.claude/skills/*.md` | `.claude/settings.json` (PreToolUse hook) |
|
|
142
|
+
| **Cursor AI** | `.cursor/rules/*.mdc` | `.cursor/rules/triples-safety.mdc` (always-applied rule) |
|
|
143
|
+
| **GitHub Copilot** | `.github/instructions/*.instructions.md` | `.github/instructions/triples-safety.instructions.md` |
|
|
144
|
+
| **OpenAI Codex** | `AGENTS.md` (project) / `~/.codex/AGENTS.md` (global) | `.codex/config.toml` / `~/.codex/config.toml` (PreToolUse hook) |
|
|
145
|
+
| **Windsurf** | `.windsurfrules` | `.windsurf/hooks.json` (pre_run_command hook) |
|
|
146
|
+
|
|
147
|
+
Global install paths:
|
|
148
|
+
|
|
149
|
+
| Platform | Skills | Hook config |
|
|
150
|
+
|---|---|---|
|
|
151
|
+
| Claude Code | `~/.claude/skills/` | `~/.claude/settings.json` |
|
|
152
|
+
| Cursor AI | `~/.cursor/rules/` | `~/.cursor/rules/triples-safety.mdc` |
|
|
153
|
+
| OpenAI Codex | `~/.codex/AGENTS.md` | `~/.codex/config.toml` |
|
|
154
|
+
| Windsurf | `~/.codeium/windsurf/rules/` | `~/.codeium/windsurf/hooks.json` |
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Safety Guardrails
|
|
159
|
+
|
|
160
|
+
Every install includes safety enforcement that blocks dangerous shell commands before they run.
|
|
161
|
+
|
|
162
|
+
### How it works per platform
|
|
163
|
+
|
|
164
|
+
| Platform | Mechanism | Enforcement |
|
|
165
|
+
|---|---|---|
|
|
166
|
+
| **Claude Code** | `PreToolUse` hook in `.claude/settings.json` | Hard — harness blocks the command |
|
|
167
|
+
| **OpenAI Codex** | `PreToolUse` hook in `.codex/config.toml` | Hard — same engine as Claude Code |
|
|
168
|
+
| **Windsurf** | `pre_run_command` hook in `.windsurf/hooks.json` | Hard — exit code 2 blocks execution |
|
|
169
|
+
| **Cursor AI** | `alwaysApply: true` rule in `.cursor/rules/` | Soft — AI-level instruction |
|
|
170
|
+
| **GitHub Copilot** | `applyTo: "**"` instruction in `.github/instructions/` | Soft — AI-level instruction |
|
|
171
|
+
|
|
172
|
+
### Blocked commands
|
|
173
|
+
|
|
174
|
+
- **Filesystem** — `rm -rf`, `rm -fr`, recursive force delete
|
|
175
|
+
- **Git destructive** — `git reset --hard`, `git checkout --`, `git restore .`
|
|
176
|
+
- **Git push force** — `git push --force`, `git push -f`
|
|
177
|
+
- **SQL destructive** — `DROP TABLE`, `DROP DATABASE`, `DELETE FROM <table>;`
|
|
178
|
+
- **Store publish** — `fastlane deliver/supply`, `gradlew publishBundle`, `xcrun altool`
|
|
179
|
+
- **Package publish** — `npm publish`, `npx ... publish`
|
|
180
|
+
|
|
181
|
+
Safe commands (`npm test`, `git push origin branch`, `flutter test`, etc.) pass through without interruption.
|
|
182
|
+
|
|
183
|
+
### Adding or editing safety rules
|
|
184
|
+
|
|
185
|
+
All hook definitions live in [`src/hooks/`](src/hooks/):
|
|
186
|
+
|
|
187
|
+
- `dangerous-commands.json` — per-platform hook configs (Claude Code, Codex, Windsurf)
|
|
188
|
+
- `dangerous-commands.md` — text-based safety rules (Cursor, Copilot)
|
|
189
|
+
|
|
190
|
+
Edit these files and reinstall to update the rules across all platforms.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Usage
|
|
195
|
+
|
|
196
|
+
### Full pipeline (Claude Code)
|
|
197
|
+
```
|
|
198
|
+
/seoyeon run
|
|
199
|
+
```
|
|
200
|
+
SeoYeon walks you through the complete workflow and delegates to each agent.
|
|
201
|
+
|
|
202
|
+
### Individual agents
|
|
203
|
+
```
|
|
204
|
+
/jiwoo-prd Create, review, and finalize a PRD
|
|
205
|
+
/yooyeon-rfc Create, review, and finalize an RFC
|
|
206
|
+
/nakyoung-tasks Create task breakdown with story points and estimates
|
|
207
|
+
/yubin-frontend Implement frontend web features
|
|
208
|
+
/kaede-backend Implement backend API and services
|
|
209
|
+
/yeonji-android Implement Android (Kotlin + Compose) features
|
|
210
|
+
/sohyun-ios Implement iOS (Swift + SwiftUI) features
|
|
211
|
+
/kotone-flutter Implement Flutter (Dart) cross-platform features
|
|
212
|
+
/lynn-testcase Create, review, and finalize test cases
|
|
213
|
+
/shion-qa Execute tests and produce Go/No-Go report
|
|
214
|
+
/seoyeon status Check current run state
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### With other coding assistants
|
|
218
|
+
Ask for the agent by name — e.g., "Act as JiWoo and create a PRD for [description]"
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Human-in-the-Loop Gates
|
|
223
|
+
|
|
224
|
+
JiWoo, YooYeon, NaKyoung, and Lynn all have built-in review loops:
|
|
225
|
+
|
|
226
|
+
1. Agent creates artifact
|
|
227
|
+
2. Agent reviews against quality gate checklist
|
|
228
|
+
3. Agent evaluates: `READY` or `GAPS: [list]`
|
|
229
|
+
4. On gaps: agent presents numbered list to user with specific questions
|
|
230
|
+
5. User provides clarifications
|
|
231
|
+
6. Agent updates and loops → repeat until `READY`
|
|
232
|
+
|
|
233
|
+
This ensures PRD, RFC, task breakdown, and test cases are implementation-ready before moving forward.
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Project Structure
|
|
238
|
+
|
|
239
|
+
```
|
|
240
|
+
triples-agentic/
|
|
241
|
+
├── install.sh # curl installer
|
|
242
|
+
├── src/
|
|
243
|
+
│ ├── agents/ # 11 agent definitions (identity, persona, knowledge, tools, workflow)
|
|
244
|
+
│ │ ├── seoyeon.md
|
|
245
|
+
│ │ ├── jiwoo-prd.md
|
|
246
|
+
│ │ ├── yooyeon-rfc.md
|
|
247
|
+
│ │ ├── nakyoung-tasks.md
|
|
248
|
+
│ │ ├── yubin-frontend.md
|
|
249
|
+
│ │ ├── kaede-backend.md
|
|
250
|
+
│ │ ├── yeonji-android.md
|
|
251
|
+
│ │ ├── sohyun-ios.md
|
|
252
|
+
│ │ ├── kotone-flutter.md
|
|
253
|
+
│ │ ├── lynn-testcase.md
|
|
254
|
+
│ │ └── shion-qa.md
|
|
255
|
+
│ ├── hooks/ # Safety guardrail definitions (source of truth)
|
|
256
|
+
│ │ ├── dangerous-commands.json # per-platform hook configs
|
|
257
|
+
│ │ └── dangerous-commands.md # text-based safety rules
|
|
258
|
+
│ ├── knowledge/ # Domain expertise loaded by agents (knowledge-only .md files)
|
|
259
|
+
│ │ ├── general/ # coding principles shared by all developer agents
|
|
260
|
+
│ │ │ └── dry.md, kiss.md, yagni.md, solid.md, slap.md, tdd.md, …
|
|
261
|
+
│ │ ├── planning/ # SeoYeon, JiWoo, YooYeon, NaKyoung
|
|
262
|
+
│ │ │ └── orchestration.md, prd-writing.md, rfc-writing.md, task-decomposition.md, …
|
|
263
|
+
│ │ ├── web/
|
|
264
|
+
│ │ │ ├── frontend/ # YuBin
|
|
265
|
+
│ │ │ │ └── frontend-components.md, frontend-state.md, web-accessibility.md, …
|
|
266
|
+
│ │ │ └── backend/ # Kaede
|
|
267
|
+
│ │ │ └── backend-structure.md, api-design.md, api-security.md, …
|
|
268
|
+
│ │ ├── mobile/
|
|
269
|
+
│ │ │ ├── android/ # YeonJi
|
|
270
|
+
│ │ │ │ └── android-architecture.md, kotlin-core.md, kotlin-concurrency.md, …
|
|
271
|
+
│ │ │ ├── ios/ # SoHyun
|
|
272
|
+
│ │ │ │ └── ios-architecture.md, swift-core.md, swift-concurrency.md, …
|
|
273
|
+
│ │ │ └── flutter/ # Kotone
|
|
274
|
+
│ │ │ └── flutter-architecture.md, dart-core.md, dart-async.md, …
|
|
275
|
+
│ │ └── quality/ # Lynn, ShiOn
|
|
276
|
+
│ │ └── testing-strategy.md, test-case-writing.md, qa-execution.md, …
|
|
277
|
+
│ ├── templates/ # Output document templates
|
|
278
|
+
│ │ ├── prd.md # → workspace/PRD.md
|
|
279
|
+
│ │ ├── rfc.md # → workspace/RFC.md
|
|
280
|
+
│ │ ├── task-breakdown.md # → workspace/TASK_BREAKDOWN.md
|
|
281
|
+
│ │ └── test-case.md # → workspace/TEST_CASES.md
|
|
282
|
+
│ └── bin/
|
|
283
|
+
│ └── setup.js # Platform installer CLI
|
|
284
|
+
├── docs/
|
|
285
|
+
│ └── workflow.md # Full workflow diagram + agent roster
|
|
286
|
+
└── CHANGELOG.md
|
|
287
|
+
|
|
288
|
+
── Generated by installer (not committed to your repo) ────────────────────
|
|
289
|
+
your-project/
|
|
290
|
+
├── .claude/
|
|
291
|
+
│ ├── skills/ # Claude Code agent + knowledge skills
|
|
292
|
+
│ └── settings.json # Claude Code PreToolUse safety hook
|
|
293
|
+
├── .cursor/rules/ # Cursor AI agent rules + safety rule
|
|
294
|
+
├── .github/instructions/ # Copilot agent instructions + safety instruction
|
|
295
|
+
├── .codex/config.toml # Codex PreToolUse safety hook
|
|
296
|
+
├── .windsurf/hooks.json # Windsurf pre_run_command safety hook
|
|
297
|
+
├── AGENTS.md # Codex agent context
|
|
298
|
+
└── .windsurfrules # Windsurf agent rules
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
### `agents/` — Behavioral definitions
|
|
304
|
+
|
|
305
|
+
Each agent file defines: identity, persona, knowledge references, tool guardrails, skills (workflows), and handoff signals. Domain content lives in `knowledge/` — agents only reference it.
|
|
306
|
+
|
|
307
|
+
Each agent includes a `## Tools` section that specifies which tools to use and which to avoid (e.g., planning agents never use `Bash`; QA agent never edits source files).
|
|
308
|
+
|
|
309
|
+
### `hooks/` — Safety guardrails (source of truth)
|
|
310
|
+
|
|
311
|
+
Hook definitions live in `src/hooks/` as platform-agnostic source files. The installer reads them and generates the appropriate config for each platform:
|
|
312
|
+
|
|
313
|
+
- **`.json` files** carry per-platform hook configs under a `platforms` key (`claude`, `codex`, `windsurf`)
|
|
314
|
+
- **`.md` files** carry text-based safety rules for platforms without executable hooks (`cursor`, `copilot`)
|
|
315
|
+
|
|
316
|
+
### `knowledge/` — Domain expertise
|
|
317
|
+
|
|
318
|
+
Pure reference `.md` files — no trigger logic, no skills framework. Agents declare which files to load via `<!-- knowledge: ... -->` metadata in their agent file. The knowledge files travel with the agents during install.
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## Inspired by
|
|
323
|
+
|
|
324
|
+
[TripleS](https://triples.fandom.com/wiki/TripleS) — a 24-member multi-national K-pop group under MODHAUS, operating on a decentralized system where members rotate between subunits based on fan participation.
|
|
325
|
+
|
|
326
|
+
Just like TripleS subunits activate for specific projects, TripleS agents activate for specific phases of software delivery.
|
package/docs/workflow.md
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# TripleS Agent Orchestration Workflow
|
|
2
|
+
|
|
3
|
+
## Agent Roster
|
|
4
|
+
|
|
5
|
+
| S# | Agent | Persona | Role | Slash Command |
|
|
6
|
+
|----|-------|---------|------|---------------|
|
|
7
|
+
| S1 | **SeoYeon** | Engineering Manager | Main Orchestrator | `/seoyeon` |
|
|
8
|
+
| S3 | **JiWoo** | Senior Product Manager | PRD Agent | `/jiwoo-prd` |
|
|
9
|
+
| S5 | **YooYeon** | Staff Engineer / Tech Lead | RFC Agent | `/yooyeon-rfc` |
|
|
10
|
+
| S7 | **NaKyoung** | Technical Program Manager | Task Breakdown | `/nakyoung-tasks` |
|
|
11
|
+
| S8 | **YuBin** | Principal Frontend Engineer | Frontend Web Dev | `/yubin-frontend` |
|
|
12
|
+
| S9 | **Kaede** | Principal Backend Engineer | Backend Dev | `/kaede-backend` |
|
|
13
|
+
| S12 | **YeonJi** | Senior Android Engineer | Android Native | `/yeonji-android` |
|
|
14
|
+
| S14 | **SoHyun** | Senior iOS Engineer | iOS Native | `/sohyun-ios` |
|
|
15
|
+
| S11 | **Kotone** | Senior Flutter Engineer | Flutter Dev | `/kotone-flutter` |
|
|
16
|
+
| S17 | **Lynn** | QA Lead / Test Lead | Test Case Agent | `/lynn-testcase` |
|
|
17
|
+
| S20 | **ShiOn** | Senior QA Automation Engineer | QA Execution | `/shion-qa` |
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Full Orchestration Workflow
|
|
22
|
+
|
|
23
|
+
```mermaid
|
|
24
|
+
flowchart TD
|
|
25
|
+
User([👤 User Input]) --> SeoYeon
|
|
26
|
+
|
|
27
|
+
SeoYeon["🎯 SeoYeon\nEngineering Manager\n/seoyeon"]
|
|
28
|
+
|
|
29
|
+
SeoYeon -->|"Delegate: Create PRD"| JiWoo
|
|
30
|
+
|
|
31
|
+
subgraph PRD_LOOP["📋 PRD Phase — JiWoo (Senior PM)"]
|
|
32
|
+
JiWoo["JiWoo\n/jiwoo-prd"]
|
|
33
|
+
JiWoo --> PRDCreate["1. Create PRD\n(from prd_template.md)"]
|
|
34
|
+
PRDCreate --> PRDReview["2. Review PRD\n(quality checklist)"]
|
|
35
|
+
PRDReview --> PRDEval{3. Evaluate:\nAll quality gates\npassed?}
|
|
36
|
+
PRDEval -->|"❌ GAPS FOUND"| HumanPRD["🧑 Human Review\nJiWoo presents gap list\nUser adds missing context"]
|
|
37
|
+
HumanPRD -->|"4. Update PRD"| PRDReview
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
PRDEval -->|"✅ READY"| YooYeon
|
|
41
|
+
|
|
42
|
+
subgraph RFC_LOOP["⚙️ RFC Phase — YooYeon (Staff Engineer)"]
|
|
43
|
+
YooYeon["YooYeon\n/yooyeon-rfc"]
|
|
44
|
+
YooYeon --> RFCCreate["1. Create RFC\n(from rfc_template.md)"]
|
|
45
|
+
RFCCreate --> RFCReview["2. Review RFC\n(quality checklist)"]
|
|
46
|
+
RFCReview --> RFCEval{3. Evaluate:\nAll quality gates\npassed?}
|
|
47
|
+
RFCEval -->|"❌ GAPS FOUND"| HumanRFC["🧑 Human Review\nYooYeon presents\ntechnical gaps\nUser decides"]
|
|
48
|
+
HumanRFC -->|"4. Update RFC"| RFCReview
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
RFCEval -->|"✅ READY"| NaKyoung
|
|
52
|
+
|
|
53
|
+
subgraph TASK_LOOP["📊 Task Breakdown Phase — NaKyoung (TPM)"]
|
|
54
|
+
NaKyoung["NaKyoung\n/nakyoung-tasks"]
|
|
55
|
+
NaKyoung --> TaskCreate["1. Create Tasks\n(story points + estimates)"]
|
|
56
|
+
TaskCreate --> TaskReview["2. Review Tasks\n(readiness checklist)"]
|
|
57
|
+
TaskReview --> TaskEval{3. Evaluate:\nAll tasks clear\n& estimable?}
|
|
58
|
+
TaskEval -->|"❌ GAPS FOUND"| HumanTask["🧑 Human Review\nNaKyoung presents\nambiguous tasks\nUser clarifies"]
|
|
59
|
+
HumanTask -->|"4. Update Tasks"| TaskReview
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
TaskEval -->|"✅ READY"| DevPhase
|
|
63
|
+
TaskEval -->|"✅ READY"| TestPhase
|
|
64
|
+
|
|
65
|
+
subgraph DevPhase["⚡ Development Phase — Parallel"]
|
|
66
|
+
YuBin["🌐 YuBin\nPrincipal Frontend\n/yubin-frontend\n\nReact/Vue/Angular\nTailwind, TypeScript"]
|
|
67
|
+
Kaede["🖥️ Kaede\nPrincipal Backend\n/kaede-backend\n\nNode/Python/Go\nPostgreSQL, REST"]
|
|
68
|
+
YeonJi["🤖 YeonJi\nSenior Android\n/yeonji-android\n\nKotlin + Jetpack Compose\nMaterial Design 3"]
|
|
69
|
+
SoHyun["🍎 SoHyun\nSenior iOS\n/sohyun-ios\n\nSwift + SwiftUI\nApple HIG"]
|
|
70
|
+
Kotone["🦋 Kotone\nSenior Flutter\n/kotone-flutter\n\nDart + Flutter\nAndroid + iOS + Web"]
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
subgraph TestPhase["📝 Test Case Phase — Lynn (QA Lead)"]
|
|
74
|
+
Lynn["Lynn\n/lynn-testcase"]
|
|
75
|
+
Lynn --> TCCreate["1. Create Test Cases\n(from test_case_template.md)"]
|
|
76
|
+
TCCreate --> TCReview["2. Review Test Cases\n(quality checklist)"]
|
|
77
|
+
TCReview --> TCEval{3. Evaluate:\nAll PRD criteria\ncovered?}
|
|
78
|
+
TCEval -->|"❌ GAPS FOUND"| HumanTC["🧑 Human Review\nLynn presents\nmissing scenarios\nUser adds context"]
|
|
79
|
+
HumanTC -->|"4. Update Test Cases"| TCReview
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
TCEval -->|"✅ READY"| ShiOn
|
|
83
|
+
YuBin --> ShiOn
|
|
84
|
+
Kaede --> ShiOn
|
|
85
|
+
YeonJi --> ShiOn
|
|
86
|
+
SoHyun --> ShiOn
|
|
87
|
+
Kotone --> ShiOn
|
|
88
|
+
|
|
89
|
+
subgraph QA["🔍 QA Phase — ShiOn (Senior QA Automation)"]
|
|
90
|
+
ShiOn["ShiOn\n/shion-qa"]
|
|
91
|
+
ShiOn --> Smoke["Smoke Tests\n(P0 only)"]
|
|
92
|
+
Smoke --> SmokeGate{P0 pass?}
|
|
93
|
+
SmokeGate -->|"❌ Fail"| BlockRelease["🛑 Block Release\nReport P0 failures\nto SeoYeon"]
|
|
94
|
+
SmokeGate -->|"✅ Pass"| FullRun["Full Test Suite\nP1 → P2 → P3\n+ Exploratory"]
|
|
95
|
+
FullRun --> GoNoGo{Go/No-Go\nAssessment}
|
|
96
|
+
GoNoGo -->|"✅ GO"| Done
|
|
97
|
+
GoNoGo -->|"❌ NO-GO"| BlockRelease2["🛑 No-Go Report\nOpen defects listed\nFix & re-test"]
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
Done(["✅ Delivery Complete\nQA_REPORT.md\nDELIVERY_SUMMARY.md"])
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Human-in-the-Loop Gates
|
|
106
|
+
|
|
107
|
+
Human review is required at four stages. Each gate follows the same pattern:
|
|
108
|
+
|
|
109
|
+
1. Agent **creates** artifact using its template
|
|
110
|
+
2. Agent **reviews** against its quality gate checklist
|
|
111
|
+
3. Agent **evaluates**: all gates pass → `READY`; any fail → `GAPS: [numbered list]`
|
|
112
|
+
4. Agent **presents** gaps to the human with specific questions
|
|
113
|
+
5. Human **provides** clarifications
|
|
114
|
+
6. Agent **updates** artifact and loops back to step 2
|
|
115
|
+
7. Loop exits when `READY`
|
|
116
|
+
|
|
117
|
+
| Gate | Agent | Artifact |
|
|
118
|
+
|------|-------|---------|
|
|
119
|
+
| PRD Review | JiWoo (Senior PM) | `workspace/PRD.md` |
|
|
120
|
+
| RFC Review | YooYeon (Staff Engineer) | `workspace/RFC.md` |
|
|
121
|
+
| Task Breakdown Review | NaKyoung (TPM) | `workspace/TASK_BREAKDOWN.md` |
|
|
122
|
+
| Test Case Review | Lynn (QA Lead) | `workspace/TEST_CASES.md` |
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Workspace Artifacts
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
workspace/
|
|
130
|
+
├── PRD.md ← JiWoo
|
|
131
|
+
├── RFC.md ← YooYeon
|
|
132
|
+
├── TASK_BREAKDOWN.md ← NaKyoung
|
|
133
|
+
├── TEST_CASES.md ← Lynn
|
|
134
|
+
├── BUGS/
|
|
135
|
+
│ └── BUG-[ID].md ← ShiOn (one per defect)
|
|
136
|
+
├── QA_REPORT.md ← ShiOn
|
|
137
|
+
└── DELIVERY_SUMMARY.md ← SeoYeon
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Quick Start
|
|
143
|
+
|
|
144
|
+
### Full pipeline
|
|
145
|
+
```
|
|
146
|
+
/seoyeon run
|
|
147
|
+
```
|
|
148
|
+
SeoYeon walks you through the entire workflow, delegating to each agent in sequence.
|
|
149
|
+
|
|
150
|
+
### Individual agents
|
|
151
|
+
```
|
|
152
|
+
/jiwoo-prd → Start or resume PRD creation
|
|
153
|
+
/yooyeon-rfc → Start or resume RFC from PRD
|
|
154
|
+
/nakyoung-tasks → Start or resume task breakdown
|
|
155
|
+
/yubin-frontend → Implement frontend web tasks
|
|
156
|
+
/kaede-backend → Implement backend tasks
|
|
157
|
+
/yeonji-android → Implement Android tasks
|
|
158
|
+
/sohyun-ios → Implement iOS tasks
|
|
159
|
+
/kotone-flutter → Implement Flutter tasks
|
|
160
|
+
/lynn-testcase → Start or resume test case creation
|
|
161
|
+
/shion-qa → Execute QA against test cases + dev output
|
|
162
|
+
/seoyeon status → Check current run state
|
|
163
|
+
```
|
package/install.sh
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# TripleS Agentic — Installer
|
|
3
|
+
#
|
|
4
|
+
# Usage:
|
|
5
|
+
# curl -fsSL https://raw.githubusercontent.com/pauplayground007/triples-agentic/main/install.sh | bash
|
|
6
|
+
# curl -fsSL https://raw.githubusercontent.com/pauplayground007/triples-agentic/main/install.sh | bash -s -- claude
|
|
7
|
+
# curl -fsSL https://raw.githubusercontent.com/pauplayground007/triples-agentic/main/install.sh | bash -s -- claude --global
|
|
8
|
+
# curl -fsSL https://raw.githubusercontent.com/pauplayground007/triples-agentic/main/install.sh | bash -s -- all
|
|
9
|
+
# curl -fsSL https://raw.githubusercontent.com/pauplayground007/triples-agentic/main/install.sh | bash -s -- update
|
|
10
|
+
|
|
11
|
+
set -euo pipefail
|
|
12
|
+
|
|
13
|
+
# ── Terminal colours (disabled if no TTY or TERM is dumb) ────────────────────
|
|
14
|
+
if [ -t 1 ] && [ "${TERM:-}" != "dumb" ]; then
|
|
15
|
+
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'
|
|
16
|
+
CYAN='\033[0;36m'; BOLD='\033[1m'; NC='\033[0m'
|
|
17
|
+
else
|
|
18
|
+
RED=''; GREEN=''; YELLOW=''; CYAN=''; BOLD=''; NC=''
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
MIN_NODE=18
|
|
22
|
+
|
|
23
|
+
# ── Helpers ──────────────────────────────────────────────────────────────────
|
|
24
|
+
err() { printf "${RED}✖ %s${NC}\n" "$*" >&2; exit 1; }
|
|
25
|
+
warn() { printf "${YELLOW}⚠ %s${NC}\n" "$*"; }
|
|
26
|
+
info() { printf "${CYAN}→${NC} %s\n" "$*"; }
|
|
27
|
+
success() { printf "${GREEN}✔${NC} %s\n" "$*"; }
|
|
28
|
+
|
|
29
|
+
# ── Banner ────────────────────────────────────────────────────────────────────
|
|
30
|
+
banner() {
|
|
31
|
+
printf "\n${BOLD}╔══════════════════════════════════════════════════╗${NC}\n"
|
|
32
|
+
printf "${BOLD}║ TripleS Agentic — Install ║${NC}\n"
|
|
33
|
+
printf "${BOLD}║ Software Engineering Agent Orchestrator ║${NC}\n"
|
|
34
|
+
printf "${BOLD}╚══════════════════════════════════════════════════╝${NC}\n\n"
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
# ── Prerequisite checks ───────────────────────────────────────────────────────
|
|
38
|
+
check_node() {
|
|
39
|
+
if ! command -v node &>/dev/null; then
|
|
40
|
+
err "Node.js is required but not installed.
|
|
41
|
+
|
|
42
|
+
Install it from : https://nodejs.org
|
|
43
|
+
macOS (Homebrew): brew install node
|
|
44
|
+
Linux (nvm) : curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash"
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
local major
|
|
48
|
+
major=$(node -e "process.stdout.write(String(process.versions.node.split('.')[0]))")
|
|
49
|
+
if [ "$major" -lt "$MIN_NODE" ]; then
|
|
50
|
+
err "Node.js v${MIN_NODE}+ required (found v${major}).
|
|
51
|
+
Update from: https://nodejs.org"
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
success "Node.js $(node --version)"
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
check_npx() {
|
|
58
|
+
if ! command -v npx &>/dev/null; then
|
|
59
|
+
err "npx not found. Update npm: npm install -g npm@latest"
|
|
60
|
+
fi
|
|
61
|
+
success "npx $(npx --version)"
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
check_platform() {
|
|
65
|
+
case "$(uname -s)" in
|
|
66
|
+
Darwin|Linux) ;;
|
|
67
|
+
MINGW*|MSYS*|CYGWIN*)
|
|
68
|
+
warn "Windows detected — running via Git Bash / MSYS2."
|
|
69
|
+
warn "For full support use WSL2 or run: npx triples-agentic"
|
|
70
|
+
;;
|
|
71
|
+
*)
|
|
72
|
+
warn "Unknown platform — proceeding anyway."
|
|
73
|
+
;;
|
|
74
|
+
esac
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
# ── Main ──────────────────────────────────────────────────────────────────────
|
|
78
|
+
main() {
|
|
79
|
+
banner
|
|
80
|
+
check_platform
|
|
81
|
+
check_node
|
|
82
|
+
check_npx
|
|
83
|
+
|
|
84
|
+
printf "\n"
|
|
85
|
+
info "Launching triples-agentic setup…"
|
|
86
|
+
printf "\n"
|
|
87
|
+
|
|
88
|
+
# Forward every argument straight to the npm package:
|
|
89
|
+
# (no args) → interactive wizard
|
|
90
|
+
# claude → Claude Code, project-level
|
|
91
|
+
# claude --global → Claude Code, global
|
|
92
|
+
# cursor --global → Cursor AI, global
|
|
93
|
+
# all → all platforms, project-level
|
|
94
|
+
# update → update all existing installations
|
|
95
|
+
npx --yes github:pauplayground007/triples-agentic "$@"
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
main "$@"
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "triples-agentic",
|
|
3
|
+
"version": "2.4.0",
|
|
4
|
+
"description": "TripleS software engineering agent orchestrator — skill plugin for Claude Code, Cursor, Copilot, Codex, and Windsurf",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"triples-agentic": "./src/bin/setup.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"src/",
|
|
11
|
+
"docs/",
|
|
12
|
+
"README.md",
|
|
13
|
+
"install.sh"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"setup": "node src/bin/setup.js",
|
|
17
|
+
"setup:claude": "node src/bin/setup.js claude",
|
|
18
|
+
"setup:claude:global": "node src/bin/setup.js claude --global",
|
|
19
|
+
"setup:cursor": "node src/bin/setup.js cursor",
|
|
20
|
+
"setup:cursor:global": "node src/bin/setup.js cursor --global",
|
|
21
|
+
"setup:copilot": "node src/bin/setup.js copilot",
|
|
22
|
+
"setup:codex": "node src/bin/setup.js codex",
|
|
23
|
+
"setup:windsurf": "node src/bin/setup.js windsurf",
|
|
24
|
+
"setup:windsurf:global": "node src/bin/setup.js windsurf --global",
|
|
25
|
+
"setup:all": "node src/bin/setup.js all"
|
|
26
|
+
},
|
|
27
|
+
"keywords": [
|
|
28
|
+
"triples-agentic",
|
|
29
|
+
"software-engineering",
|
|
30
|
+
"agent",
|
|
31
|
+
"orchestrator",
|
|
32
|
+
"skill",
|
|
33
|
+
"plugin",
|
|
34
|
+
"claude",
|
|
35
|
+
"copilot",
|
|
36
|
+
"cursor",
|
|
37
|
+
"codex",
|
|
38
|
+
"windsurf",
|
|
39
|
+
"prd",
|
|
40
|
+
"rfc"
|
|
41
|
+
],
|
|
42
|
+
"engines": {
|
|
43
|
+
"node": ">=18.0.0"
|
|
44
|
+
},
|
|
45
|
+
"license": "MIT",
|
|
46
|
+
"repository": {
|
|
47
|
+
"type": "git",
|
|
48
|
+
"url": "git+https://github.com/pauplayground007/triples-agentic.git"
|
|
49
|
+
},
|
|
50
|
+
"bugs": {
|
|
51
|
+
"url": "https://github.com/pauplayground007/triples-agentic/issues"
|
|
52
|
+
},
|
|
53
|
+
"homepage": "https://github.com/pauplayground007/triples-agentic#readme"
|
|
54
|
+
}
|