teamai-cli 0.25.0-beta.0 โ†’ 0.25.0-beta.2

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/CHANGELOG.md CHANGED
@@ -6,7 +6,9 @@ All notable changes to this project will be documented in this file. See [standa
6
6
 
7
7
  ### โœจ Features
8
8
 
9
+ - `teamai remove` accepts `--force` to skip its confirmation prompt, spelled the same way as `teamai uninstall --force`. Without a TTY the prompt answers itself with no, so this is the only way to remove a resource from a script or a test (for [#591](https://github.com/Tencent/teamai-cli/issues/591)).
9
10
  - MCP servers in `mcp/mcp.yaml` and hooks in `hooks/hooks.yaml` accept an optional `roles:` list and ship only to members holding one of those roles; a role change removes the previous role's entries on the next pull, and `teamai mcp list` / `teamai hooks list` show the restriction (for [#563](https://github.com/Tencent/teamai-cli/issues/563)).
11
+ - Agents can be scoped by role or project: `agents/<namespace>/` ships only to members whose `roles.yaml` / `projects.yaml` entry lists that namespace under a new optional `agents:` key, and a role change removes the previous namespaces' agents on the next pull (for [#563](https://github.com/Tencent/teamai-cli/issues/563)).
10
12
  - First-class Kiro support: skills, steering rules, JSON subagents with CLI `agentSpawn` session-start hooks, and MCP sync to `.kiro/` (for [#500](https://github.com/Tencent/teamai-cli/issues/500)).
11
13
  - Multi-project management: `role` and `project` together resolve resource namespaces, and project-private learnings are isolated ([#426](https://github.com/Tencent/teamai-cli/pull/426), for [#375](https://github.com/Tencent/teamai-cli/issues/375)).
12
14
  - Data partitions auto-migrate a legacy `.teamai`, resume interrupted migrations, smoke-check the clone, and keep a git-ignored backup ([#439](https://github.com/Tencent/teamai-cli/pull/439), for [#374](https://github.com/Tencent/teamai-cli/issues/374)).
@@ -14,13 +16,20 @@ All notable changes to this project will be documented in this file. See [standa
14
16
 
15
17
  ### ๐Ÿ› Bug Fixes
16
18
 
19
+ - `teamai tags subscribe` and `teamai tags unsubscribe` now invalidate the pull revision cache, as `teamai skill exclude` already does, so the next `teamai pull` applies the new subscriptions instead of reporting "Already synced" when the team repo has not changed.
20
+ - `teamai pull` now deletes a tombstoned agent under all three render extensions, so the Codex `.toml` and Kiro `.json` copies of a removed agent no longer survive on other machines. The cleanup also runs when the team repo rev is unchanged, so an upgrade reaches machines that already pulled the tombstone with an older CLI. `teamai remove agents <name>` also honours `enabledAgents` and no longer deletes from excluded tools. Fixes [#576](https://github.com/Tencent/teamai-cli/issues/576).
21
+ - `teamai remove rules <name>` and `teamai remove skills <name>` now honour `enabledAgents` and leave excluded tools untouched, matching the whitelist `teamai pull` already applies when it cleans up a tombstoned resource. Fixes [#590](https://github.com/Tencent/teamai-cli/issues/590).
22
+ - `teamai pull` and `teamai mcp inject` no longer write team MCP servers into installed tools outside `enabledAgents` or listed in `disabledAgents`, the same gate skills, rules, agents and hooks already use. Servers injected before the upgrade are left in place, and `teamai uninstall` still removes them.
23
+ - `teamai import --cache-status` and `--cache-gc` now expose their existing JSON output through the CLI `--json` option.
17
24
  - Course-correction matching normalizes prompts and keywords to Unicode NFC, so composed and decomposed accents match. Stored prompt summaries and the 60-second correction window are unchanged. Fixes [#573](https://github.com/Tencent/teamai-cli/issues/573).
18
25
  - Course-correction detection matches keywords in space-separated scripts as whole words, so Spanish "segundo" no longer counts as `undo` (for [#564](https://github.com/Tencent/teamai-cli/issues/564)).
26
+ - `teamai doctor` no longer assumes TGit before initialization and now exits with code 1 when any diagnostic check fails.
19
27
  - MCP `requires` is resolved from `PATH` (including Windows `PATHEXT`), so `teamai mcp inject` no longer skips servers such as `uvx` on Windows ([#540](https://github.com/Tencent/teamai-cli/pull/540), for [#539](https://github.com/Tencent/teamai-cli/issues/539)).
20
28
  - The GitHub and CNB providers resolve their CLI to a launchable absolute path and start it through cross-spawn, so on Windows they no longer answer "installed" while every call fails silently ([#520](https://github.com/Tencent/teamai-cli/pull/520)).
21
29
  - `enabledAgents` now also gates CLI builtin deploy, CLAUDE.md-class injects, and last-pull skip-sync targets, so an already-installed tool outside the whitelist is not written to ([#510](https://github.com/Tencent/teamai-cli/issues/510)).
22
30
  - `teamai status` counts rule files in subdirectories recursively ([#437](https://github.com/Tencent/teamai-cli/pull/437)).
23
31
  - Codex Stop-phase contribution hints are deferred to the next prompt, so the host no longer rejects `additionalContext` ([#441](https://github.com/Tencent/teamai-cli/pull/441)).
32
+ - Agent version detection launches the agent CLI through cross-spawn, so on Windows an npm-installed agent CLI such as `codebuddy`, `claude` or `openclaw` (a `.cmd` shim) reports its version instead of an empty `agent_version`.
24
33
 
25
34
  ### ๐Ÿ“ Documentation
26
35
 
package/README.ja.md ADDED
@@ -0,0 +1,278 @@
1
+ <p align="center">
2
+ <img src="assets/teamai-cli-logo.svg" alt="teamai-cli">
3
+ </p>
4
+
5
+ # TeamAI โ€” Make Every Team AI Native
6
+
7
+ > [English](README.md) | [ไธญๆ–‡](README.zh-CN.md) | [ๆ—ฅๆœฌ่ชž](README.ja.md) | [ํ•œ๊ตญ์–ด](README.ko.md) | [เน„เธ—เธข](README.th.md)
8
+
9
+ [![CI](https://github.com/Tencent/teamai-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/Tencent/teamai-cli/actions/workflows/ci.yml)
10
+ [![npm version](https://img.shields.io/npm/v/teamai-cli.svg)](https://www.npmjs.com/package/teamai-cli)
11
+ [![npm downloads](https://img.shields.io/npm/dm/teamai-cli.svg)](https://www.npmjs.com/package/teamai-cli)
12
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
13
+
14
+ TeamAI ใฏใ€ใƒใƒผใƒ ใฎ Skillsใ€Rulesใ€MCPใ€ใƒŠใƒฌใƒƒใ‚ธใ‚’ Claude Codeใ€Codexใ€CodeBuddyใ€WorkBuddyใ€OpenCodeใ€Cursor ใชใฉใฎ AI Agents ๆจชๆ–ญใง็ฎก็†ใ—ใพใ™ใ€‚
15
+
16
+ ## ใ‚ณใƒณใƒˆใƒชใƒ“ใƒฅใƒผใ‚ฟใƒผ
17
+
18
+ TeamAI ใซ่ฒข็Œฎใ—ใฆใใ ใ•ใฃใŸใฟใชใ•ใ‚“ใซๆ„Ÿ่ฌใ—ใพใ™ใ€‚
19
+
20
+ <a href="https://trendshift.io/repositories/123184?utm_source=repository-badge&amp;utm_medium=badge&amp;utm_campaign=badge-repository-123184" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/repositories/123184" alt="Tencent%2Fteamai-cli | Trendshift" width="250" height="55"/></a>
21
+
22
+ <a href="https://github.com/Tencent/teamai-cli/graphs/contributors">
23
+ <img src="https://contrib.rocks/image?repo=Tencent/teamai-cli" alt="Contributors" />
24
+ </a>
25
+
26
+ [contrib.rocks](https://contrib.rocks) ใง็”Ÿๆˆใ—ใฆใ„ใพใ™ใ€‚
27
+
28
+ ## ใ‚ฏใ‚คใƒƒใ‚ฏใ‚นใ‚ฟใƒผใƒˆ
29
+
30
+ ### ใ‚คใƒณใ‚นใƒˆใƒผใƒซ
31
+
32
+ ```bash
33
+ npm install -g teamai-cli
34
+ ```
35
+
36
+ ### ใƒใƒผใƒ ็ฎก็†่€… / ๅ€‹ไบบๅˆฉ็”จ
37
+
38
+ Git ใƒ›ใ‚นใƒˆ๏ผˆGitHubใ€GitLabใ€GitCodeใ€CNBใ€TGitใ€ใพใŸใฏใƒ—ใƒฉใ‚คใƒ™ใƒผใƒˆ Git ใ‚ตใƒผใƒ“ใ‚น๏ผ‰ใซๅ…ฑๆœ‰ใƒชใƒใ‚ธใƒˆใƒชใ‚’ไฝœๆˆใ—ใ€**ใƒใƒผใƒ ใƒกใƒณใƒใƒผใซๆ›ธใ่พผใฟๆจฉ้™ใ‚’ไป˜ไธŽ**ใ—ใฆใ‹ใ‚‰ใ€`teamai init https://github.com/yourorg/yourrepo` ใ‚’ๅฎŸ่กŒใ—ใพใ™ใ€‚
39
+
40
+ > **ใพใ ใƒใƒผใƒ ใƒชใƒใ‚ธใƒˆใƒชใŒใชใ„ๅ ดๅˆใฏ๏ผŸ** ๆœฌ็•ชๅ‘ใ‘ใฎ skillsใ€rulesใ€review agents ใŒๅ…ฅใฃใŸใƒ†ใƒณใƒ—ใƒฌใƒผใƒˆใ‹ใ‚‰ๅง‹ใ‚ใ‚‰ใ‚Œใพใ™ใ€‚[teamai-hub](https://github.com/teamai-hub) org ใ‚’้–‹ใใ€**Fork** ใ—ใฆใ‹ใ‚‰ใ€ๆ–ฐใ—ใ„ใƒชใƒใ‚ธใƒˆใƒชใซๅฏพใ—ใฆ `teamai init` ใ‚’ๅฎŸ่กŒใ—ใฆใใ ใ•ใ„ใ€‚
41
+
42
+ ### ใƒใƒผใƒ ใƒกใƒณใƒใƒผ
43
+
44
+ ```bash
45
+ # Choose one, depending on where you want resources installed
46
+
47
+ # Project-scope init (default, resources installed under the project directory)
48
+ cd /path/to/my-project
49
+ teamai init https://github.com/yourorg/yourrepo
50
+
51
+ # Or, user-scope init (resources installed under ~/)
52
+ teamai init https://github.com/yourorg/yourrepo --scope user
53
+ ```
54
+
55
+ ๅˆๆœŸๅŒ–ๅพŒใฏใ€็ฎก็†่€…ใŒๅ…ฌ้–‹ใ—ใŸๆœ€ๆ–ฐใฎ skills / rules ใชใฉใฎ Harness ๆ›ดๆ–ฐใŒใ€AI ใ‚ปใƒƒใ‚ทใƒงใƒณ้–‹ๅง‹ๆ™‚ใซ่‡ชๅ‹•ใงๅ–ใ‚Š่พผใพใ‚Œใพใ™ใ€‚ๆ‰‹ๅ‹•ๅŒๆœŸใฏไธ่ฆใงใ™ใ€‚
56
+
57
+ > **ๅฎŒๅ…จใชๅˆฉ็”จใ‚ฌใ‚คใƒ‰:** [docs/usage-guide.md](docs/usage-guide.md)๏ผˆ[ไธญๆ–‡็‰ˆ](docs/usage-guide.zh-CN.md)๏ผ‰โ€” ใƒใƒผใƒ ไฝœๆˆใ‹ใ‚‰ๆ—ฅๅธธๅˆฉ็”จใพใงใ‚’ใ‚ซใƒใƒผใ—ใพใ™ใ€‚
58
+
59
+ ## ใƒ—ใƒญใƒ€ใ‚ฏใƒˆใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃ
60
+
61
+ **Team Execution ร— Team Context (beta) ร— Team Improvement (beta)**:
62
+
63
+ | ใƒฌใ‚คใƒคใƒผ | ๅฝนๅ‰ฒ | ๆœฌ CLI ใงใฎ็พ็Šถ |
64
+ |----------|------|-----------------|
65
+ | **Team Execution** | ใฉใฎ Agent ใ‚‚ใƒใƒผใƒ ใฎใ‚„ใ‚Šๆ–นใงๅ‹•ใ‹ใ™ | `init` / `pull` / `push`ใ€skillsใ€rulesใ€agentsใ€hooksใ€MCPใ€env |
66
+ | **Team Context** (beta) | ใฉใฎ Agent ใ‚‚ใƒใƒผใƒ ใ‚’็†่งฃใ™ใ‚‹ | recallใ€learningsใ€codebase graphใ€teamwiki... |
67
+ | **Team Improvement** (beta) | ๆฏŽๅ›žใฎๅฎŸ่กŒใŒใƒใƒผใƒ ใ‚’ๅผทใใ™ใ‚‹ | ๆ‘ฉๆ“ฆใƒ™ใƒผใ‚นใฎ share-learningsใ€sessionsใ€digestใ€dashboard... |
68
+
69
+ ## ๆฆ‚่ฆ
70
+
71
+ <table>
72
+ <thead>
73
+ <tr>
74
+ <th rowspan="2">Agent</th>
75
+ <th colspan="7">Team Execution</th>
76
+ <th colspan="3">Team Context (beta)</th>
77
+ <th colspan="3">Team Improvement (beta)</th>
78
+ </tr>
79
+ <tr>
80
+ <th>skills</th><th>rules</th><th>docs</th><th>env</th><th>agents</th><th>hooks</th><th>mcp</th>
81
+ <th>learnings</th><th>codebase</th><th>teamwiki</th>
82
+ <th>usage</th><th>sessions</th><th>dashboard</th>
83
+ </tr>
84
+ </thead>
85
+ <tbody>
86
+ <tr><td>Claude Code</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
87
+ <tr><td>Codex</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
88
+ <tr><td>Cursor</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
89
+ <tr><td>CodeBuddy</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
90
+ <tr><td>WorkBuddy</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
91
+ <tr><td>OpenCode</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td></tr>
92
+ <tr><td>OpenClaw</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td></tr>
93
+ <tr><td>Hermes</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td></tr>
94
+ <tr><td>DeepSeek Harness</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td></tr>
95
+ <tr><td>Qoder</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
96
+ <tr><td>Kiro</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
97
+ <tr><td>ZCode</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
98
+ </tbody>
99
+ </table>
100
+
101
+ **Git ใƒ—ใƒญใƒใ‚คใƒ€ใƒผ** โ€” GitHub ยท GitLab ยท GitCode ยท CNB ยท TGit ยท ใƒ—ใƒฉใ‚คใƒ™ใƒผใƒˆ Git ใ‚ตใƒผใƒ“ใ‚นใ€‚
102
+
103
+ ### ้…ๅธƒใ‚ณใƒณใƒˆใƒญใƒผใƒซ
104
+
105
+ ็ฎก็†่€…ใŒไธ€ๅบฆ่จญๅฎšใ™ใ‚Œใฐใ€`teamai pull` ๆ™‚ใซๅ…จใƒกใƒณใƒใƒผใธๅฑŠใใƒใƒผใƒ ๅ…ฑ้€šใฎ่จญๅฎšใงใ™ใ€‚
106
+
107
+ | ๆฉŸ่ƒฝ | ใ‚ณใƒžใƒณใƒ‰ | ๅ†…ๅฎน |
108
+ |------|----------|------|
109
+ | **Projects** | `teamai projects` | ไฝœๆฅญใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใ‚’ 1 ใคไปฅไธŠใฎ่ซ–็†ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใซ็ดใฅใ‘ใ€ใใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฎ skillsใ€ใƒŠใƒฌใƒƒใ‚ธใ€้š”้›ขใ•ใ‚ŒใŸ learnings ใ‚’ๅŒๆœŸใ—ใพใ™ใ€‚Roles ใจใฏ็›ดไบคใ—ใพใ™ใ€‚ |
110
+ | **Roles** | `teamai roles` | ใƒญใƒผใƒซ โ†’ ๅๅ‰็ฉบ้–“ใฎๅฏพๅฟœใ‚’ๅฎš็พฉใ—ใ€ๅ„ใƒกใƒณใƒใƒผใŒ่‡ชๅˆ†ใฎใƒญใƒผใƒซๅ‘ใ‘ skills ใ ใ‘ใ‚’ๅŒๆœŸใ™ใ‚‹ใ‚ˆใ†ใซใ—ใพใ™ใ€‚ |
111
+ | **Tags** | `teamai tags` | skills / rules ใซใ‚ฟใ‚ฐใ‚’ไป˜ใ‘ใ€ใƒกใƒณใƒใƒผใฏๅฟ…่ฆใชใ‚ฟใ‚ฐใ ใ‘ใ‚’่ณผ่ชญใ—ใพใ™ใ€‚ |
112
+ | **Sources** | `teamai source` | ่ฟฝๅŠ ใฎ skill ใƒชใƒใ‚ธใƒˆใƒชใ‚’่ณผ่ชญใ—ใพใ™ใ€‚ไป–ใƒใƒผใƒ ใฎๅ…ฌ้–‹ใƒชใƒใ‚ธใƒˆใƒชใ‚„ใ€่‡ช็ต„็น”ๅ†…ใฎๅ…ฑๆœ‰/ๅ…ฌ้–‹ใƒชใƒใ‚ธใƒˆใƒชใŒๅฏพ่ฑกใงใ™ใ€‚่ณผ่ชญใ—ใŸ skills ใฏ pull ๆ™‚ใซ่‡ชๅ‹•ๅŒๆœŸใ•ใ‚Œใพใ™ใ€‚ |
113
+
114
+ learnings ใฎ้š”้›ข: ใƒชใƒใ‚ธใƒˆใƒช็›ดไธ‹ใฎ `learnings/` ใฏๅ…จๅ“กใงๅ…ฑๆœ‰ใ€`learnings/<project-id>/` ใฏใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆๅฐ‚็”จใงใ™ใ€‚่ฉณ็ดฐใฏ [usage guide](docs/usage-guide.md#multi-project-project-as-a-dimension-orthogonal-to-role) ใ‚’ๅ‚็…งใ—ใฆใใ ใ•ใ„ใ€‚
115
+
116
+ ## Team Execution
117
+
118
+ > One Team. One Harness. Every Agent.
119
+
120
+ TeamAI ใฏ skillsใ€rulesใ€docsใ€hooks ใ‚’ๅ…ฑๆœ‰ Git ใƒชใƒใ‚ธใƒˆใƒชใซ็ฝฎใใ€ใ€Œpush โ†’ ใƒฌใƒ“ใƒฅใƒผใ—ใฆใƒžใƒผใ‚ธ โ†’ pullใ€ใฎๆตใ‚Œใงๅ„ใƒกใƒณใƒใƒผใฎใƒญใƒผใ‚ซใƒซ AI ใƒ„ใƒผใƒซใธ้…ๅธƒใ—ใพใ™ใ€‚ไป–ใƒใƒผใƒ ใ‚„ๅ…ฑๆœ‰ใƒชใƒใ‚ธใƒˆใƒชใฎ Harness ่ณผ่ชญใซใ‚‚ๅฏพๅฟœใ—ใพใ™ใ€‚
121
+
122
+ ### ไป•็ต„ใฟ
123
+
124
+ ```
125
+ teamai push โ†’ create branch + MR โ†’ reviewer approves + merges
126
+ โ†“
127
+ SessionStart hook โ†’ teamai pull โ†’ synced to local AI tools
128
+ ```
129
+
130
+ ### ๅ…ฑๆœ‰ใ•ใ‚Œใ‚‹ใ‚‚ใฎ
131
+
132
+ ๅ„ใƒชใ‚ฝใƒผใ‚นใฏใ™ในใฆใฎ Agent ใซๅฑŠใ‘ใ‚‰ใ‚Œใพใ™ใ€‚
133
+
134
+ | ใƒชใ‚ฝใƒผใ‚น | ใƒใƒผใƒ ใƒชใƒใ‚ธใƒˆใƒชๅ†… | ๅ‚™่€ƒ |
135
+ |----------|-------------------|------|
136
+ | **Skills** | `skills/<name>/SKILL.md` | |
137
+ | **Rules** | `rules/*.md` | |
138
+ | **Docs** | `docs/` | ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฎๅŸบ็คŽใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใ€‚ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใฏๅ…จไปถ่ชญใฟ่พผใฟใพใ›ใ‚“๏ผˆprogressive disclosure๏ผ‰ |
139
+ | **Agents** | `agents/<name>.yaml` | |
140
+ | **Culture** | `culture.md` | ใƒใƒผใƒ ใฎใƒŸใƒƒใ‚ทใƒงใƒณใ€ไพกๅ€ค่ฆณใ€ๅƒใๆ–นใฎๅŽŸๅ‰‡ใ€‚ๅ„ Agent ใฎ CLAUDE.md / AGENTS.md ใซๆณจๅ…ฅใ•ใ‚Œใ€ใ™ในใฆใฎใ‚ปใƒƒใ‚ทใƒงใƒณใซๅผ•ใ็ถ™ใŒใ‚Œใพใ™ |
141
+ | **CLAUDE.md** | `claudemd/*.md` | |
142
+ | **Env** | `env/` | ใƒใƒผใƒ ๅ…ฑ้€šใฎ็’ฐๅขƒๅค‰ๆ•ฐใจใ‚นใ‚คใƒƒใƒใ€‚secrets ใฏ็ฝฎใ‹ใชใ„ใงใใ ใ•ใ„ |
143
+ | **Hooks** | `hooks/hooks.yaml` | ๅ„ hook ใซ `roles:` ใ‚’ไป˜ใ‘ใ€่ฉฒๅฝ“ใƒญใƒผใƒซใ‚’ๆŒใคใƒกใƒณใƒใƒผใซใ ใ‘ๅฑŠใ‘ใ‚‹ใ“ใจใŒใงใใพใ™ |
144
+ | **MCP** | `mcp/mcp.yaml` | ๅ„ server ใซ `roles:` ใ‚’ไป˜ใ‘ใ€่ฉฒๅฝ“ใƒญใƒผใƒซใ‚’ๆŒใคใƒกใƒณใƒใƒผใซใ ใ‘ๅฑŠใ‘ใ‚‹ใ“ใจใŒใงใใพใ™ |
145
+ | **Packages** | `teamai.yaml` | ็พๆ™‚็‚นใงใฏ npm ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใจ Claude Code plugins ใฎใฟ |
146
+ | **Models** | โ€” | ใพใ ใ™ในใฆใฎ provider ใซใฏๆœชๅฏพๅฟœใงใ™ |
147
+
148
+ ใƒ•ใ‚กใ‚คใƒซๅฝขๅผใจไธ€้€ฃใฎใƒฏใƒผใ‚ฏใƒ•ใƒญใƒผใฏ [Usage Guide](docs/usage-guide.md) ใ‚’ๅ‚็…งใ—ใฆใใ ใ•ใ„ใ€‚
149
+
150
+ ## Team Context (beta)
151
+
152
+ > Every agent understands how the team works.
153
+
154
+ Harness ใฎ้…ๅธƒใซๅŠ ใˆใ€TeamAI ใฏ่“„็ฉใ—ใŸใƒใƒผใƒ ็ตŒ้จ“ใจใ‚ณใƒผใƒ‰ๆง‹้€ ใ‚’ๆคœ็ดขๅฏ่ƒฝใชใƒŠใƒฌใƒƒใ‚ธใƒ™ใƒผใ‚นใซๆ•ด็†ใ—ใ€ๅฟ…่ฆใซๅฟœใ˜ใฆ AI ใŒ่‡ชๅ‹•ใง recall ใ—ใพใ™ใ€‚
155
+
156
+ ### ็ตŒ้จ“ใฎ่‡ชๅ‹•ๅ…ฑๆœ‰
157
+
158
+ ใ‚ปใƒƒใ‚ทใƒงใƒณ็ต‚ไบ†ๆ™‚ใ€Stop hook ใฏ **friction**๏ผˆๆ‘ฉๆ“ฆ๏ผ‰ใงใ‚นใ‚ณใ‚ขใ—ใพใ™ใ€‚ใ“ใ‚Œใฏใ€Œ่ฆšใˆใฆใŠใไพกๅ€คใŒใ‚ใ‚‹ใ€ๅ…†ๅ€™ใงใ™ใ€‚AI ใ‚’ไธญๆ–ญใƒป่จ‚ๆญฃใ—ใŸใ€ใƒ„ใƒผใƒซๅ‘ผใณๅ‡บใ—ใ‚’ๆ‹’ๅฆใ—ใŸใ€ๅคฑๆ•—ใ—ใŸใƒ„ใƒผใƒซใ‚’ AI ใŒไฝ•ๅบฆใ‚‚ๅ†่ฉฆ่กŒใ—ใŸใ€ใชใฉใงใ™ใ€‚้•ทใใฆใ‚‚้ †่ชฟใชใ‚ปใƒƒใ‚ทใƒงใƒณ๏ผˆใƒ„ใƒผใƒซๅ‘ผใณๅ‡บใ—ใฏๅคšใ„ใŒๆ‘ฉๆ“ฆใŒใชใ„๏ผ‰ใงใฏ็™บ็ซใ—ใพใ›ใ‚“ใ€‚ๆœฌๅฝ“ใซๅ•้กŒใจๅ‘ใๅˆใฃใŸใ‚ปใƒƒใ‚ทใƒงใƒณใ ใ‘ใŒๅฏพ่ฑกใงใ™ใ€‚ใ‚นใ‚ณใ‚ขใŒๅๅˆ†้ซ˜ใ„ใจใ€AI ใฏๆฌกใฎใ‚ˆใ†ใซๆๆกˆใ—ใพใ™ใ€‚
159
+
160
+ ```
161
+ [teamai] This session may contain a problem worth documenting: you interrupted the AI twice, the AI retried failing tools 8 times.
162
+
163
+ Task: Fix duplicate project-level Hook injection
164
+
165
+ Consider running /teamai-share-learnings to summarize what you learned and share it with your team.
166
+ ```
167
+
168
+ ใƒ’ใƒณใƒˆใซใฏใ€็™บ็ซใฎใใฃใ‹ใ‘ใซใชใฃใŸ้žใ‚ผใƒญใฎ friction ใ‚ทใ‚ฐใƒŠใƒซใŒๅ…ฅใ‚Šใพใ™ใ€‚ๅ–ๅพ—ใงใใ‚‹ๅ ดๅˆใฏใ€ๆœ€ๅˆใฎใ‚ฟใ‚นใ‚ฏใ‚’ใƒžใ‚นใ‚ฏใ—ใŸ 1 ่กŒ่ฆ็ด„ใ‚‚ไป˜ใใพใ™ใ€‚`/teamai-share-learnings` skill ใฏใ‚ปใƒƒใ‚ทใƒงใƒณใ‚’่ฆ็ด„ใ—ใ€learning ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใ‚’ใƒใƒผใƒ ใƒชใƒใ‚ธใƒˆใƒชใธ็›ดๆŽฅ push ใ—ใพใ™ใ€‚ๅ„ใ‚ปใƒƒใ‚ทใƒงใƒณใธใฎๆ็คบใฏๆœ€ๅคง 1 ๅ›žใงใ™ใ€‚ใƒใƒผใƒ ใฏ `teamai.yaml` ใฎ `sharing.contributeHint.enabled: false` ใงใƒ’ใƒณใƒˆใ ใ‘ใ‚’ใ‚ชใƒ•ใซใงใใพใ™๏ผˆใƒกใƒณใƒใƒผๅดใฏใƒญใƒผใ‚ซใƒซ่จญๅฎšใฎ `contributeHintEnabled`๏ผ‰ใ€‚Stop hook ใฎใปใ‹ใฎๅ‡ฆ็†ใฏใใฎใพใพๆฎ‹ใ‚Šใพใ™ใ€‚
169
+
170
+ ### Team Knowledge Recall
171
+
172
+ ใ‚ฟใ‚นใ‚ฏใฎๅ‰ใซใ€่“„็ฉใ—ใŸใƒใƒผใƒ ใƒŠใƒฌใƒƒใ‚ธใ‚’ AI ใŒ่‡ชๅ‹•ๆคœ็ดขใงใใ‚‹ใ‚ˆใ†ใซใ—ใพใ™ใ€‚ใ“ใฎๆฉŸ่ƒฝใฏ **ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใ‚ชใƒ•** ใงใ€ๆ˜Ž็คบ็š„ใซๆœ‰ๅŠนๅŒ–ใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚ใƒใƒผใƒ ใฏ `teamai.yaml` ใง `sharing.recall.enabled: true` ใ‚’ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใซใงใใ€ใƒกใƒณใƒใƒผใฏใƒญใƒผใ‚ซใƒซใงไธŠๆ›ธใใงใใพใ™ใ€‚
173
+
174
+ ```bash
175
+ teamai recall enable # on: deploy the teamai-recall subagent + inject guidance rules
176
+ teamai recall disable # off: remove the subagent and rules
177
+ teamai recall status # show effective state (team default + user override)
178
+ ```
179
+
180
+ **ๆคœ็ดขใฏ subagent ็ตŒ็”ฑ**ใงใ™ใ€‚ๆœ‰ๅŠนๅŒ–ๅพŒใ€`teamai pull` ใฏ็ต„ใฟ่พผใฟใฎ `teamai-recall` subagent ใ‚’ๅ„ AI ใƒ„ใƒผใƒซใฎ `agents/` ใซ้…ๅ‚™ใ—ใพใ™ใ€‚AI ใฏใ‚ฟใ‚นใ‚ฏๅ‰ใซใ“ใ‚Œใ‚’ๅ‘ผใณๅ‡บใ—ใพใ™ใ€‚subagent ใŒใ‚ญใƒผใƒฏใƒผใƒ‰ใ‚’ๆŠฝๅ‡บใ—ใ€ๆคœ็ดขใ‚’ๅฎŸ่กŒใ—ใ€ใƒ’ใƒƒใƒˆใ—ใŸใ‚ฝใƒผใ‚นใƒ•ใ‚กใ‚คใƒซใ‚’่ชญใ‚“ใงใ€ใƒใƒผใƒ ใƒŠใƒฌใƒƒใ‚ธใฎๆง‹้€ ๅŒ–ใ‚ตใƒžใƒชใƒผใ‚’่ฟ”ใ—ใพใ™ใ€‚ๅ…ˆใซ้–ข้€ฃๆ€งใฎไบ‹ๅ‰ใƒใ‚งใƒƒใ‚ฏ๏ผˆ`teamai recall --check`๏ผ‰ใ‚’่กŒใ„ใ€ใ‚ฟใ‚นใ‚ฏใŒใƒใƒผใƒ ใƒŠใƒฌใƒƒใ‚ธใจ็„ก้–ขไฟ‚ใชใ‚‰ๆคœ็ดข่‡ชไฝ“ใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ—ใพใ™ใ€‚ๅ†…้ƒจใงใฏ `teamai recall` ใ‚ณใƒžใƒณใƒ‰ใ‚’ใ‚ทใ‚งใƒซๅฎŸ่กŒใ—ใฆใŠใ‚Šใ€ๆ‰‹ๅ‹•ใงใ‚‚ๅŒใ˜ใ‚ณใƒžใƒณใƒ‰ใ‚’ไฝฟใˆใพใ™ใ€‚
181
+
182
+ ```bash
183
+ $ teamai recall "port conflict"
184
+ [1/2] MR review caught a port-conflict bug โ˜…1 [user]
185
+ Author: member-a | Score: 18.5 | Tags: troubleshooting, networking
186
+
187
+ [2/2] Deployment configuration best practices [project]
188
+ Author: member-b | Score: 12.0 | Tags: deploy, config
189
+ Matched: conflict | Missing: port
190
+ ```
191
+
192
+ ### Codebase Knowledge Graph
193
+
194
+ `teamai import` ใฏใ‚ฝใƒผใ‚นใƒชใƒใ‚ธใƒˆใƒชใ‚’่งฃๆžใ—ใ€`teamwiki/` ้…ไธ‹ใฎๆง‹้€ ๅŒ–ใ‚ฐใƒฉใƒ•ใซใ—ใพใ™ใ€‚ๆง‹้€ ใ‚’ๆ„่ญ˜ใ—ใŸๆคœ็ดขใŒๅฏ่ƒฝใซใชใ‚Šใพใ™ใ€‚
195
+
196
+ ```bash
197
+ teamai import --from-repo https://github.com/org/repo
198
+ teamai import --from-org myorg # batch import all repos
199
+ teamai codebase --extract /path/to/repo # local extract into teamwiki/
200
+ teamai codebase --deep-enrich --project my-service --output /path/to/repo # generate deep knowledge docs
201
+ teamai codebase --reconcile --output /path/to/repo # map product docs to code pages
202
+ teamai codebase --lint --output /path/to/repo # check the locally extracted graph
203
+ ```
204
+
205
+ extract ใฏใ€AI enrichment ใ‚’ใ‚นใ‚ญใƒƒใƒ—ใ—ใŸๅ ดๅˆใ‚„ๆˆๆžœใŒ็ฉบใงใ‚‚ใ€`teamwiki/evidence/code/<project>/_manifest.json` ใ‚’ๆ›ธใๅ‡บใ™ใฎใงใ€`--deep-enrich` ใ‹ใ‚‰ๅง‹ใ‚ใ‚‰ใ‚Œใพใ™ใ€‚
206
+
207
+ ใ‚ฐใƒฉใƒ•ใซใฏใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใ€ใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใƒผใ‚นใ€่จญๅฎšใ€ใƒชใƒใ‚ธใƒˆใƒช้–“ใฎ import ใ‚จใƒƒใ‚ธใŒๅ…ฅใ‚Šใพใ™ใ€‚`teamai recall` ใฏใ“ใ‚Œใ‚’ graph-boost ใฎๅ†ใƒฉใƒณใ‚ญใƒณใ‚ฐใซไฝฟใ„ใพใ™ใ€‚
208
+ recall ใฎใƒ’ใƒƒใƒˆใŒ codebase ใƒšใƒผใ‚ธ็”ฑๆฅใฎใจใใฏใ€็ตๆžœใซ้–ข้€ฃใ‚ฝใƒผใ‚นใƒ‘ใ‚นใ‚’ๅˆ—ๆŒ™ใ™ใ‚‹ `Sources:` ่กŒใŒไป˜ใใพใ™ใ€‚Agent ใฏใƒชใƒใ‚ธใƒˆใƒชใ‚’ๆœ€ๅˆใ‹ใ‚‰ๆŽข็ดขใ—็›ดใ•ใšใ€ใ‚ณใƒผใƒ‰ๅค‰ๆ›ดใฎ่ตท็‚นใซใงใใพใ™ใ€‚
209
+
210
+ ใ‚จใƒƒใ‚ธใฏ 2 ๆœฌใฎใƒˆใƒฉใƒƒใ‚ฏใŒๅŒๆ™‚ใซ่ตฐใ‚Šใ€้‡่ค‡ๆ™‚ใฏ AST ๅดใŒๅ„ชๅ…ˆใ•ใ‚Œใพใ™ใ€‚
211
+
212
+ - **AST track**๏ผˆTypeScript/JavaScriptใ€Pythonใ€Go๏ผ‰: WASM ใฎ [tree-sitter](https://tree-sitter.github.io/) ใƒ‘ใƒผใ‚ตใƒผใŒ `import`/`require`ใ€ๅ‘ผใณๅ‡บใ—็ฎ‡ๆ‰€ใ€TS ใฎ `implements` ๅฅใ‚’ใ€ใƒ•ใ‚กใ‚คใƒซ้–“ใฎๆญฃ็ขบใช `DEPENDS_ON` / `REFERENCES` / `IMPLEMENTS` ใ‚จใƒƒใ‚ธใซ่งฃๆฑบใ—ใพใ™๏ผˆใ‚ฟใ‚ฐใฏ `code-ast`ใ€ไฟก้ ผๅบฆใฎ้‡ใฟไป˜ใ๏ผ‰ใ€‚
213
+ - **Heuristic track**๏ผˆJava/Rust ใ‚’ๅซใ‚€ๅ…จ่จ€่ชž๏ผ‰: ๆญฃ่ฆ่กจ็พใƒ™ใƒผใ‚นใฎๆŠฝๅ‡บ๏ผˆใ‚ฟใ‚ฐใฏ `code-heuristic`๏ผ‰ใ€‚AST track ใŒๅฏพ่ฑกใซใ—ใชใ„่จ€่ชžใ‚‚ใ‚ซใƒใƒผใ—ใพใ™ใ€‚
214
+
215
+ WASM ใƒ‘ใƒผใ‚ตใƒผใฏ็ด”็ฒ‹ใช JavaScript ไพๅญ˜ใงใ€ใƒใ‚คใƒ†ใ‚ฃใƒ–ใฎใƒ„ใƒผใƒซใƒใ‚งใƒผใƒณใฏไธ่ฆใงใ™ใ€‚ไฝ•ใ‚‰ใ‹ใฎ็†็”ฑใง่ชญใฟ่พผใ‚ใชใ„ๅ ดๅˆใ€ๆŠฝๅ‡บใฏ heuristic track ใซใƒ•ใ‚ฉใƒผใƒซใƒใƒƒใ‚ฏใ—ใ€`AST_UNAVAILABLE` ใฎ gap ใ‚’่จ˜้Œฒใ—ใพใ™ใ€‚`TEAMAI_SKIP_AST=1` ใ‚’่จญๅฎšใ™ใ‚‹ใจใ€heuristic ใฎใฟใฎๆŠฝๅ‡บใ‚’ๅผทๅˆถใงใใพใ™ใ€‚
216
+
217
+ ## Team Improvement (beta)
218
+
219
+ > Every execution makes the entire team smarter.
220
+
221
+ ### Maintenance
222
+
223
+ skills ใจใƒŠใƒฌใƒƒใ‚ธใŒๅข—ใˆใŸใ‚‰ใ€ใƒใƒผใƒ ใŒไฝฟใ‚ใชใใชใฃใŸใ‚‚ใฎใ‚’ๆ•ด็†ใ—ใพใ™ใ€‚`teamai recall maintenance` ใฏไฟก้ ผๅบฆใฎไฝŽใ„ learnings ใ‚’ใ‚ขใƒผใ‚ซใ‚คใƒ–ใ—ใ€ๅคใ„ skillsใ€rulesใ€docs ใ‚’ใ‚ฏใƒชใƒผใƒณใ‚ขใƒƒใƒ—ใพใŸใฏๆ›ดๆ–ฐๅ€™่ฃœใจใ—ใฆๅฐไป˜ใ‘ใ—ใพใ™ใ€‚
224
+
225
+ ```bash
226
+ teamai recall maintenance --prune --dry-run # preview
227
+ teamai recall maintenance --prune --archive # archive unused learnings
228
+ teamai recall maintenance --update-quality # draft updates for stale skills / docs
229
+ ```
230
+
231
+ ใƒใƒผใƒ ใŒ AI ใƒ„ใƒผใƒซใ‚’ๅฎŸ้š›ใซใฉใ†ไฝฟใฃใฆใ„ใ‚‹ใ‹ใฎๆดžๅฏŸใจใ€ใ‚ปใƒƒใ‚ทใƒงใƒณใฎๆ‘ฉๆ“ฆใ‚’ๅ…ฑๆœ‰ใฎ skillsใ€rulesใ€ใƒŠใƒฌใƒƒใ‚ธใธๅค‰ใˆใ‚‹ๅ‡บ็™บ็‚นใงใ™ใ€‚
232
+
233
+ | ๆฉŸ่ƒฝ | ใ‚ณใƒžใƒณใƒ‰ | ่กจ็คบๅ†…ๅฎน |
234
+ |------|----------|----------|
235
+ | **Usage** | `teamai digest` | ใƒใƒผใƒ ใฎ้€ฑๆฌก digest โ€” ็›ด่ฟ‘ 7 ๆ—ฅใฎๆˆๅŠŸ็އใ€promptใ€ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ๆ™‚้–“ใ€ๆŽจๅฎšใ‚ณใ‚นใƒˆใ€cacheใ€่จ‚ๆญฃใฎๅ‚พๅ‘ใจใ€็ดฏ่จˆๅ€คใ€‚ |
236
+ | **Sessions** | `teamai session save` | ใƒ—ใƒฉใ‚คใƒใ‚ทใƒผใ‚’้™คๅŽปใ—ใŸใ‚ปใƒƒใ‚ทใƒงใƒณ่ฆ็ด„๏ผˆใƒ„ใƒผใƒซๅˆ—ใ€prompt ใ‚ฟใƒผใƒณใ€ไป‹ๅ…ฅ๏ผ‰ใ€‚digest ใฎ Session Highlights ใฎๅ…ฅๅŠ›ใซใชใ‚Šใพใ™ใ€‚ |
237
+ | **Dashboard** | `teamai dashboard` | ใƒฉใ‚คใƒ–ใ‚ปใƒƒใ‚ทใƒงใƒณใจใ€็›ด่ฟ‘ 7 ๆ—ฅใ‚’ใใฎๅ‰ใฎ 7 ๆ—ฅใจๆฏ”่ผƒใ—ใŸใƒญใƒผใ‚ซใƒซใƒˆใƒฌใƒณใƒ‰ใ‚’็คบใ™ Web dashboardใ€‚ |
238
+ | **KB Health** | `teamai dashboard` โ†’ KB Health | ็ต„ใฟ่พผใฟใฎ dashboard ใƒšใƒผใ‚ธใ€‚ใƒŠใƒฌใƒƒใ‚ธใƒ™ใƒผใ‚นใฎๅˆฉ็”จใจๅฅๅ…จๆ€ง๏ผˆใ‚ฟใ‚คใƒ—ๅˆฅใ‚ซใƒใƒฌใƒƒใ‚ธใ€ใ‚ˆใ recall ใ•ใ‚Œใ‚‹ใ‚จใƒณใƒˆใƒชใ€ๆฒˆ้ป™ใ‚จใƒณใƒˆใƒชใ€recall ใƒˆใƒฌใƒณใƒ‰ใ€ไฝœ่€…ใฎ่ฒข็Œฎใ€ใƒกใƒณใƒ†ใƒŠใƒณใ‚นใ‚ณใƒณใ‚ฝใƒผใƒซ๏ผ‰ใ‚’ๅ ฑๅ‘Šใ—ใพใ™ใ€‚ |
239
+
240
+ ## ใ‚ณใƒžใƒณใƒ‰
241
+
242
+ | ใ‚ณใƒžใƒณใƒ‰ | ่ชฌๆ˜Ž |
243
+ |----------|------|
244
+ | `teamai init` | ๅˆๆœŸๅŒ–: OAuth ใƒญใ‚ฐใ‚คใƒณใ€ใƒชใƒใ‚ธใƒˆใƒช้€ฃๆบใ€ใƒกใƒณใƒใƒผ็™ป้Œฒใ€hooks ๆณจๅ…ฅ |
245
+ | `teamai pull` | ใƒใƒผใƒ ใƒชใ‚ฝใƒผใ‚นใ‚’ๅ–ๅพ—ใ—ใ€ใƒญใƒผใ‚ซใƒซ AI ใƒ„ใƒผใƒซใธๆณจๅ…ฅ |
246
+ | `teamai push` | ใƒญใƒผใ‚ซใƒซใƒชใ‚ฝใƒผใ‚นใ‚’ใƒ–ใƒฉใƒณใƒใธ push ใ—ใ€Merge Request ใ‚’้–‹ใ |
247
+ | `teamai packages [install] [target]` | ๅฎฃ่จ€ๆธˆใฟใฎ npm ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใจ Claude plugins ใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ€‚target ๆŒ‡ๅฎšๆ™‚ใฏ `teamai.yaml` ใ‚‚ๆ›ดๆ–ฐใ€‚ๅผ•ๆ•ฐใชใ—ใฎ `teamai packages` ใฏใ™ในใฆใ‚คใƒณใ‚นใƒˆใƒผใƒซใ€`teamai packages install <target>` ใฏ 1 ไปถ่ฟฝๅŠ  |
248
+ | `teamai status` | ใƒญใƒผใ‚ซใƒซใจใƒใƒผใƒ ใƒชใƒใ‚ธใƒˆใƒชใฎๅทฎๅˆ†ใจใƒชใ‚ฝใƒผใ‚นไปถๆ•ฐใ‚’่กจ็คบใ€‚ๅๅ‰็ฉบ้–“ไป˜ใ skills ใจๅ…ฅใ‚Œๅญใฎ docs ใ‚‚ๅซใ‚€ |
249
+ | `teamai contribute` | ใ‚ปใƒƒใ‚ทใƒงใƒณ็ตŒ้จ“ใ‚’ใƒใƒผใƒ ใƒชใƒใ‚ธใƒˆใƒชใธๅ…ฑๆœ‰ |
250
+ | `teamai recall <query>` | ใƒใƒผใƒ ใƒŠใƒฌใƒƒใ‚ธใƒ™ใƒผใ‚นใ‚’ๆคœ็ดข๏ผˆBM25 + graph-boost๏ผ‰ |
251
+ | `teamai recall enable/disable/status` | recall ใฎใ‚ชใƒณ/ใ‚ชใƒ•ใ€ใพใŸใฏ็Šถๆ…‹็ขบ่ช |
252
+ | `teamai recall promote [learningId]` | ไฟก้ ผๅบฆใฎ้ซ˜ใ„ learning ใ‚’ๆญฃๅผใƒŠใƒฌใƒƒใ‚ธ๏ผˆskills/rules/docs๏ผ‰ใธๆ˜‡ๆ ผ |
253
+ | `teamai recall maintenance` | ใƒŠใƒฌใƒƒใ‚ธใƒ™ใƒผใ‚นใฎๅฅๅ…จๆ€งใ‚’็ถญๆŒ: ไฝŽไฟก้ ผๅบฆ learnings ใฎๆ•ด็†ใ€ไฟก้ ผๅบฆใ‚นใ‚ณใ‚ขใฎๆ›ธใๆˆปใ—ใ€ๅคใ„ใ‚จใƒณใƒˆใƒชใฎๅฐไป˜ใ‘ |
254
+ | `teamai import` | ใƒŠใƒฌใƒƒใ‚ธใ‚’ import๏ผˆ`--dir`ใ€`--from-repo`ใ€`--from-org`ใ€`--from-repo-list`ใ€`--from-mr`๏ผ‰ |
255
+ | `teamai codebase --extract [path]` | ใ‚ณใƒผใƒ‰ไบ‹ๅฎŸใ‚’ๆŠฝๅ‡บใ—ใ€`teamwiki/` ้…ไธ‹ใซใƒญใƒผใ‚ซใƒซใ‚ฐใƒฉใƒ•ใ‚’ๆง‹็ฏ‰ |
256
+ | `teamai codebase --deep-enrich` | ๆŠฝๅ‡บใ—ใŸ evidence ใ‹ใ‚‰ๆทฑใ„ใƒŠใƒฌใƒƒใ‚ธใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใ‚’็”Ÿๆˆ |
257
+ | `teamai codebase --reconcile` | ใƒ—ใƒญใƒ€ใ‚ฏใƒˆใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใจๆŠฝๅ‡บใ—ใŸใ‚ณใƒผใƒ‰ใƒŠใƒฌใƒƒใ‚ธใ‚’็ชใๅˆใ‚ใ› |
258
+ | `teamai codebase --lint` | Knowledge graph ใฎๅฅๅ…จๆ€งใƒใ‚งใƒƒใ‚ฏ |
259
+ | `teamai ci extract-mr --url <url>` | CI: MR ใ‹ใ‚‰ใƒŠใƒฌใƒƒใ‚ธใ‚’ๆŠฝๅ‡บใ€ใ‚ณใƒกใƒณใƒˆๆŠ•็จฟใ€ใƒžใƒผใ‚ธๅพŒใซๆ›ธใ่พผใฟ |
260
+ | `teamai members` | ใƒใƒผใƒ ใƒกใƒณใƒใƒผไธ€่ฆง |
261
+ | `teamai projects` | ไฝœๆฅญใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใ‚’ 1 ใคไปฅไธŠใฎ่ซ–็†ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใซ็ดใฅใ‘ |
262
+ | `teamai roles` | ใƒใƒผใƒ ใฎ roles ใจๅๅ‰็ฉบ้–“ใ‚’็ฎก็† |
263
+ | `teamai tags` | ใ‚ฟใ‚ฐใƒ™ใƒผใ‚นใฎ skill/rule ใƒ•ใ‚ฃใƒซใ‚ฟใ‚’็ฎก็† |
264
+ | `teamai skill exclude add/remove/list` | ใƒญใƒผใ‚ซใƒซๅŒๆœŸใ‹ใ‚‰้™คๅค–ใ™ใ‚‹ skills ใ‚’็ฎก็†๏ผˆ[usage guide](docs/usage-guide.md#excluding-skills-you-dont-need)๏ผ‰ |
265
+ | `teamai source` | skill ่ณผ่ชญใ‚ฝใƒผใ‚นใ‚’็ฎก็†๏ผˆไป–ใƒใƒผใƒ ใ€ใพใŸใฏ่‡ช็ต„็น”ใฎๅ…ฑๆœ‰ใƒชใƒใ‚ธใƒˆใƒช๏ผ‰ |
266
+ | `teamai remove <type> <name>` | ใƒชใ‚ฝใƒผใ‚นใ‚’ๅ‰Š้™คใ—ใ€MR ใ‚’้–‹ใ |
267
+ | `teamai session save` | ใƒ—ใƒฉใ‚คใƒใ‚ทใƒผ้™คๅŽปๆธˆใฟใฎใ‚ปใƒƒใ‚ทใƒงใƒณ่ฆ็ด„ใ‚’ๆœˆๆฌกใƒญใ‚ฐใธ่จ˜้Œฒ๏ผˆ`--push` ใฏ `digest` ใธไพ›็ตฆ๏ผ‰ |
268
+ | `teamai digest` | ใƒใƒผใƒ ๅˆฉ็”จใฎ้€ฑๆฌก digest ใ‚’็”Ÿๆˆ |
269
+ | `teamai doctor` | ่จญๅฎšใฎๅ•้กŒใ‚’่จบๆ–ญ๏ผˆ`--json` ใง JSON ๅ‡บๅŠ›ใ€CIใƒปhookใƒปagent ๅ‘ใ‘๏ผ‰|
270
+ | `teamai uninstall` | ใ™ในใฆใฎ teamai ใƒชใ‚ฝใƒผใ‚นใจ hooks ใ‚’ๅ‰Š้™ค |
271
+
272
+ ## ใƒฉใ‚คใ‚ปใƒณใ‚น
273
+
274
+ [MIT](LICENSE)
275
+
276
+ ## ใ‚ณใƒณใƒˆใƒชใƒ“ใƒฅใƒผใƒˆ
277
+
278
+ PR ใ‚’ๆญ“่ฟŽใ—ใพใ™ใ€‚ๅ…ˆใซ [CONTRIBUTING.md](.github/CONTRIBUTING.md) ใ‚’่ชญใ‚“ใงใใ ใ•ใ„ใ€‚
package/README.ko.md ADDED
@@ -0,0 +1,278 @@
1
+ <p align="center">
2
+ <img src="assets/teamai-cli-logo.svg" alt="teamai-cli">
3
+ </p>
4
+
5
+ # TeamAI โ€” Make Every Team AI Native
6
+
7
+ > [English](README.md) | [ไธญๆ–‡](README.zh-CN.md) | [ๆ—ฅๆœฌ่ชž](README.ja.md) | [ํ•œ๊ตญ์–ด](README.ko.md) | [เน„เธ—เธข](README.th.md)
8
+
9
+ [![CI](https://github.com/Tencent/teamai-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/Tencent/teamai-cli/actions/workflows/ci.yml)
10
+ [![npm version](https://img.shields.io/npm/v/teamai-cli.svg)](https://www.npmjs.com/package/teamai-cli)
11
+ [![npm downloads](https://img.shields.io/npm/dm/teamai-cli.svg)](https://www.npmjs.com/package/teamai-cli)
12
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
13
+
14
+ TeamAI๋Š” ํŒ€์˜ Skills, Rules, MCP, ์ง€์‹์„ Claude Code, Codex, CodeBuddy, WorkBuddy, OpenCode, Cursor ๋“ฑ AI Agents ์ „๋ฐ˜์—์„œ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
15
+
16
+ ## ๊ธฐ์—ฌ์ž
17
+
18
+ TeamAI์— ๊ธฐ์—ฌํ•ด ์ฃผ์‹  ๋ชจ๋“  ๋ถ„๊ป˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
19
+
20
+ <a href="https://trendshift.io/repositories/123184?utm_source=repository-badge&amp;utm_medium=badge&amp;utm_campaign=badge-repository-123184" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/repositories/123184" alt="Tencent%2Fteamai-cli | Trendshift" width="250" height="55"/></a>
21
+
22
+ <a href="https://github.com/Tencent/teamai-cli/graphs/contributors">
23
+ <img src="https://contrib.rocks/image?repo=Tencent/teamai-cli" alt="Contributors" />
24
+ </a>
25
+
26
+ [contrib.rocks](https://contrib.rocks)๋กœ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
27
+
28
+ ## ๋น ๋ฅธ ์‹œ์ž‘
29
+
30
+ ### ์„ค์น˜
31
+
32
+ ```bash
33
+ npm install -g teamai-cli
34
+ ```
35
+
36
+ ### ํŒ€ ๊ด€๋ฆฌ์ž / ๊ฐœ์ธ ์‚ฌ์šฉ์ž
37
+
38
+ Git ํ˜ธ์ŠคํŠธ(GitHub, GitLab, GitCode, CNB, TGit ๋˜๋Š” ๋น„๊ณต๊ฐœ Git ์„œ๋น„์Šค)์— ๊ณต์œ  ๊ฒฝํ—˜ ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค๊ณ , **ํŒ€์›์—๊ฒŒ ์“ฐ๊ธฐ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ ๋’ค** `teamai init https://github.com/yourorg/yourrepo`๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.
39
+
40
+ > **์•„์ง ํŒ€ ์ €์žฅ์†Œ๊ฐ€ ์—†๋‚˜์š”?** ํ”„๋กœ๋•์…˜์— ๋ฐ”๋กœ ์“ธ ์ˆ˜ ์žˆ๋Š” Skills, Rules, review agents๊ฐ€ ๋ฏธ๋ฆฌ ๋“ค์–ด ์žˆ๋Š” ํ…œํ”Œ๋ฆฟ์œผ๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”. [teamai-hub](https://github.com/teamai-hub) org๋ฅผ ๋‘˜๋Ÿฌ๋ณธ ๋’ค **Fork**ํ•˜๊ณ , ์ƒˆ๋กœ ๋งŒ๋“  ์ €์žฅ์†Œ์— `teamai init`์„ ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
41
+
42
+ ### ํŒ€์›
43
+
44
+ ```bash
45
+ # Choose one, depending on where you want resources installed
46
+
47
+ # Project-scope init (default, resources installed under the project directory)
48
+ cd /path/to/my-project
49
+ teamai init https://github.com/yourorg/yourrepo
50
+
51
+ # Or, user-scope init (resources installed under ~/)
52
+ teamai init https://github.com/yourorg/yourrepo --scope user
53
+ ```
54
+
55
+ ์ดˆ๊ธฐํ™”๊ฐ€ ๋๋‚˜๋ฉด ๊ด€๋ฆฌ์ž๊ฐ€ ๋ฐฐํฌํ•œ ์ตœ์‹  Skills / Rules ๋ฐ ๊ธฐํƒ€ Harness ์—…๋ฐ์ดํŠธ๊ฐ€ ๋งค AI ์„ธ์…˜์—์„œ ์ž๋™์œผ๋กœ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค. ์ˆ˜๋™ ๋™๊ธฐํ™”๋Š” ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.
56
+
57
+ > **์ „์ฒด ์‚ฌ์šฉ ๊ฐ€์ด๋“œ:** [docs/usage-guide.md](docs/usage-guide.md) ([ไธญๆ–‡็‰ˆ](docs/usage-guide.zh-CN.md)) โ€” ํŒ€ ์ƒ์„ฑ๋ถ€ํ„ฐ ์ผ์ƒ ์‚ฌ์šฉ๊นŒ์ง€ ๋ชจ๋‘ ๋‹ค๋ฃน๋‹ˆ๋‹ค.
58
+
59
+ ## ์ œํ’ˆ ์•„ํ‚คํ…์ฒ˜
60
+
61
+ **Team Execution ร— Team Context (beta) ร— Team Improvement (beta)**:
62
+
63
+ | ๊ณ„์ธต | ์—ญํ•  | ํ˜„์žฌ CLI์—์„œ |
64
+ |-------|-----|-------------------|
65
+ | **Team Execution** | ๋ชจ๋“  Agent๊ฐ€ ํŒ€์˜ ๋ฐฉ์‹๋Œ€๋กœ ์ผํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค | `init` / `pull` / `push`, skills, rules, agents, hooks, MCP, env |
66
+ | **Team Context** (beta) | ๋ชจ๋“  Agent๊ฐ€ ํŒ€์„ ์ดํ•ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค | recall, learnings, codebase graph, teamwiki... |
67
+ | **Team Improvement** (beta) | ๋ชจ๋“  ์‹คํ–‰์ด ํŒ€์„ ๋” ๊ฐ•ํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค | ๋งˆ์ฐฐ ๊ธฐ๋ฐ˜ share-learnings, sessions, digest, dashboard... |
68
+
69
+ ## ๊ฐœ์š”
70
+
71
+ <table>
72
+ <thead>
73
+ <tr>
74
+ <th rowspan="2">Agent</th>
75
+ <th colspan="7">Team Execution</th>
76
+ <th colspan="3">Team Context (beta)</th>
77
+ <th colspan="3">Team Improvement (beta)</th>
78
+ </tr>
79
+ <tr>
80
+ <th>skills</th><th>rules</th><th>docs</th><th>env</th><th>agents</th><th>hooks</th><th>mcp</th>
81
+ <th>learnings</th><th>codebase</th><th>teamwiki</th>
82
+ <th>usage</th><th>sessions</th><th>dashboard</th>
83
+ </tr>
84
+ </thead>
85
+ <tbody>
86
+ <tr><td>Claude Code</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
87
+ <tr><td>Codex</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
88
+ <tr><td>Cursor</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
89
+ <tr><td>CodeBuddy</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
90
+ <tr><td>WorkBuddy</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
91
+ <tr><td>OpenCode</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td></tr>
92
+ <tr><td>OpenClaw</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td></tr>
93
+ <tr><td>Hermes</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td></tr>
94
+ <tr><td>DeepSeek Harness</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โ€”</td><td align="center">โ€”</td></tr>
95
+ <tr><td>Qoder</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
96
+ <tr><td>Kiro</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
97
+ <tr><td>ZCode</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โ€”</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td><td align="center">โœ“</td></tr>
98
+ </tbody>
99
+ </table>
100
+
101
+ **Git providers** โ€” GitHub ยท GitLab ยท GitCode ยท CNB ยท TGit ยท ๋น„๊ณต๊ฐœ Git ์„œ๋น„์Šค.
102
+
103
+ ### ๋ฐฐํฌ ์ œ์–ด
104
+
105
+ ๊ด€๋ฆฌ์ž๊ฐ€ ํ•œ ๋ฒˆ ์„ค์ •ํ•˜๋ฉด `teamai pull` ๋•Œ ๋ชจ๋“  ๋ฉค๋ฒ„์—๊ฒŒ ์ „๋‹ฌ๋˜๋Š” ํŒ€ ์ „์—ญ ์„ค์ •์ž…๋‹ˆ๋‹ค.
106
+
107
+ | ๊ธฐ๋Šฅ | ๋ช…๋ น | ํ•˜๋Š” ์ผ |
108
+ |------------|---------|--------------|
109
+ | **Projects** | `teamai projects` | ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋…ผ๋ฆฌ ํ”„๋กœ์ ํŠธ์— ๋ฌถ์–ด, ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ Skills, ์ง€์‹, ๊ฒฉ๋ฆฌ๋œ learnings๋ฅผ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. Roles์™€๋Š” ๋ณ„๊ฐœ์˜ ์ฐจ์›์ž…๋‹ˆ๋‹ค. |
110
+ | **Roles** | `teamai roles` | role โ†’ namespace ๋งคํ•‘์„ ์ •์˜ํ•ด, ๊ฐ ๋ฉค๋ฒ„๊ฐ€ ์ž์‹ ์˜ role์— ํ•ด๋‹นํ•˜๋Š” Skills๋งŒ ๋™๊ธฐํ™”ํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. |
111
+ | **Tags** | `teamai tags` | Skills / Rules์— ํƒœ๊ทธ๋ฅผ ๋‹ฌ์•„, ๋ฉค๋ฒ„๊ฐ€ ํ•„์š”ํ•œ ํƒœ๊ทธ๋งŒ ๊ตฌ๋…ํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. |
112
+ | **Sources** | `teamai source` | ์ถ”๊ฐ€ skill ์ €์žฅ์†Œ๋ฅผ ๊ตฌ๋…ํ•ฉ๋‹ˆ๋‹ค โ€” ๋‹ค๋ฅธ ํŒ€์˜ ๊ณต๊ฐœ ์ €์žฅ์†Œ, ๋˜๋Š” ์šฐ๋ฆฌ org ์•ˆ์˜ ๊ณต์œ /๊ณต๊ฐœ ์ €์žฅ์†Œ. ๊ตฌ๋…ํ•œ Skills๋Š” pull ๋•Œ ์ž๋™ ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค. |
113
+
114
+ Learnings ๊ฒฉ๋ฆฌ: ์ €์žฅ์†Œ ๋ฃจํŠธ์˜ `learnings/`๋Š” ์ „์›๊ณผ ๊ณต์œ ๋˜๊ณ , `learnings/<project-id>/`๋Š” ํ”„๋กœ์ ํŠธ ์ „์šฉ์ž…๋‹ˆ๋‹ค. [usage guide](docs/usage-guide.md#multi-project-project-as-a-dimension-orthogonal-to-role)๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
115
+
116
+ ## Team Execution
117
+
118
+ > One Team. One Harness. Every Agent.
119
+
120
+ TeamAI๋Š” Skills, Rules, docs, hooks๋ฅผ ๊ณต์œ  Git ์ €์žฅ์†Œ์— ๋‘๊ณ , "push โ†’ review & merge โ†’ pull" ํ๋ฆ„์œผ๋กœ ๊ฐ ๋ฉค๋ฒ„์˜ ๋กœ์ปฌ AI ๋„๊ตฌ์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํŒ€์ด๋‚˜ ๊ณต์œ  ์ €์žฅ์†Œ์˜ Harness ๊ตฌ๋…๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
121
+
122
+ ### ์ž‘๋™ ๋ฐฉ์‹
123
+
124
+ ```
125
+ teamai push โ†’ create branch + MR โ†’ reviewer approves + merges
126
+ โ†“
127
+ SessionStart hook โ†’ teamai pull โ†’ synced to local AI tools
128
+ ```
129
+
130
+ ### ๊ณต์œ ๋˜๋Š” ํ•ญ๋ชฉ
131
+
132
+ ๊ฐ ๋ฆฌ์†Œ์Šค๋Š” ๋ชจ๋“  Agent์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
133
+
134
+ | ๋ฆฌ์†Œ์Šค | ํŒ€ ์ €์žฅ์†Œ ์œ„์น˜ | ์ฐธ๊ณ  |
135
+ |----------|------------------|-------|
136
+ | **Skills** | `skills/<name>/SKILL.md` | |
137
+ | **Rules** | `rules/*.md` | |
138
+ | **Docs** | `docs/` | ํ”„๋กœ์ ํŠธ ๊ธฐ๋ฐ˜ ๋ฌธ์„œ. ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ „๋ถ€ ๋กœ๋“œ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค(progressive disclosure) |
139
+ | **Agents** | `agents/<name>.yaml` | |
140
+ | **Culture** | `culture.md` | ํŒ€์˜ ๋ฏธ์…˜, ๊ฐ€์น˜, ์ผํ•˜๋Š” ์›์น™ โ€” ๊ฐ Agent์˜ CLAUDE.md / AGENTS.md์— ์ฃผ์ž…๋˜์–ด ๋ชจ๋“  ์„ธ์…˜์ด ์ด๋ฅผ ์ด์–ด๋ฐ›์Šต๋‹ˆ๋‹ค |
141
+ | **CLAUDE.md** | `claudemd/*.md` | |
142
+ | **Env** | `env/` | ํŒ€ ๋‹จ์œ„ ๊ณต์œ  ํ™˜๊ฒฝ ๋ณ€์ˆ˜์™€ ์Šค์œ„์น˜. ์‹œํฌ๋ฆฟ์€ ๋„ฃ์ง€ ๋งˆ์„ธ์š” |
143
+ | **Hooks** | `hooks/hooks.yaml` | ๊ฐ hook์— `roles:`๋ฅผ ๋‹ฌ๋ฉด ํ•ด๋‹น role์„ ๊ฐ€์ง„ ๋ฉค๋ฒ„์—๊ฒŒ๋งŒ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค |
144
+ | **MCP** | `mcp/mcp.yaml` | ๊ฐ server์— `roles:`๋ฅผ ๋‹ฌ๋ฉด ํ•ด๋‹น role์„ ๊ฐ€์ง„ ๋ฉค๋ฒ„์—๊ฒŒ๋งŒ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค |
145
+ | **Packages** | `teamai.yaml` | ํ˜„์žฌ๋Š” npm ํŒจํ‚ค์ง€์™€ Claude Code ํ”Œ๋Ÿฌ๊ทธ์ธ๋งŒ ์ง€์› |
146
+ | **Models** | โ€” | ์•„์ง ๋ชจ๋“  provider์— ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค |
147
+
148
+ ํŒŒ์ผ ํ˜•์‹๊ณผ ์ „์ฒด ์›Œํฌํ”Œ๋กœ๋Š” [Usage Guide](docs/usage-guide.md)๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
149
+
150
+ ## Team Context (beta)
151
+
152
+ > Every agent understands how the team works.
153
+
154
+ Harness๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด, TeamAI๋Š” ์Œ“์ธ ํŒ€ ๊ฒฝํ—˜๊ณผ ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•œ ์ง€์‹ ๋ฒ ์ด์Šค๋กœ ์ •๋ฆฌํ•˜๊ณ , AI๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์ž๋™์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
155
+
156
+ ### ๊ฒฝํ—˜ ์ž๋™ ๊ณต์œ 
157
+
158
+ ์„ธ์…˜์ด ๋๋‚˜๋ฉด Stop hook์ด **friction**(๋งˆ์ฐฐ)์œผ๋กœ ์ ์ˆ˜๋ฅผ ๋งค๊น๋‹ˆ๋‹ค. ์„ธ์…˜์—์„œ ๊ธฐ์–ตํ•  ๋งŒํ•œ ์ผ์ด ์žˆ์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์‹ ํ˜ธ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด AI๋ฅผ ์ค‘๋‹จํ•˜๊ฑฐ๋‚˜ ๊ณ ์ณค๊ฑฐ๋‚˜, ๋„๊ตฌ ํ˜ธ์ถœ์„ ๊ฑฐ์ ˆํ–ˆ๊ฑฐ๋‚˜, AI๊ฐ€ ์‹คํŒจํ•œ ๋„๊ตฌ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์žฌ์‹œ๋„ํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ๋„๊ตฌ ํ˜ธ์ถœ์€ ๋งŽ์ง€๋งŒ ๋งˆ์ฐฐ์ด ์—†๋Š” ๊ธธ๊ณ  ํ‰๋ฒ”ํ•œ ์„ธ์…˜์€ ํŠธ๋ฆฌ๊ฑฐ๋˜์ง€ ์•Š๊ณ , ์‹ค์ œ๋กœ ๋ฌธ์ œ๋ฅผ ๋ถ™์žก๊ณ  ์”จ๋ฆ„ํ•œ ์„ธ์…˜๋งŒ ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ ์ˆ˜๊ฐ€ ์ถฉ๋ถ„ํ•˜๋ฉด AI๊ฐ€ ์ด๋ ‡๊ฒŒ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.
159
+
160
+ ```
161
+ [teamai] This session may contain a problem worth documenting: you interrupted the AI twice, the AI retried failing tools 8 times.
162
+
163
+ Task: Fix duplicate project-level Hook injection
164
+
165
+ Consider running /teamai-share-learnings to summarize what you learned and share it with your team.
166
+ ```
167
+
168
+ ํžŒํŠธ์—๋Š” ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ๋œ 0์ด ์•„๋‹Œ friction ์‹ ํ˜ธ๊ฐ€ ๋‚˜์˜ค๊ณ , ๊ฐ€๋Šฅํ•˜๋ฉด ์ฒซ ๋ฒˆ์งธ ์ž‘์—…์„ ๋งˆ์Šคํ‚นํ•œ ํ•œ ์ค„ ์š”์•ฝ๋„ ๋ถ™์Šต๋‹ˆ๋‹ค. `/teamai-share-learnings` skill์€ ์„ธ์…˜์„ ์š”์•ฝํ•ด learning ๋ฌธ์„œ๋ฅผ ํŒ€ ์ €์žฅ์†Œ์— ๋ฐ”๋กœ pushํ•ฉ๋‹ˆ๋‹ค. ์„ธ์…˜๋‹น ํžŒํŠธ๋Š” ์ตœ๋Œ€ ํ•œ ๋ฒˆ์ž…๋‹ˆ๋‹ค. ํŒ€์€ `teamai.yaml`์—์„œ `sharing.contributeHint.enabled: false`๋กœ ํžŒํŠธ๋งŒ ๋Œ ์ˆ˜ ์žˆ๊ณ (๋ฉค๋ฒ„๋Š” ๋กœ์ปฌ ์„ค์ •์˜ `contributeHintEnabled`), Stop hook์˜ ๋‚˜๋จธ์ง€ ๊ธฐ๋Šฅ์€ ๊ทธ๋Œ€๋กœ ๋‘ก๋‹ˆ๋‹ค.
169
+
170
+ ### ํŒ€ ์ง€์‹ Recall
171
+
172
+ ์ž‘์—… ์ „์— AI๊ฐ€ ์Œ“์ธ ํŒ€ ์ง€์‹์„ ์ž๋™์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ **๊ธฐ๋ณธ๊ฐ’์ด ๊บผ์ง**์ด๋ฉฐ, ๋ช…์‹œ์ ์œผ๋กœ ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŒ€์€ `teamai.yaml`์—์„œ `sharing.recall.enabled: true`๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋‘˜ ์ˆ˜ ์žˆ๊ณ , ๋ฉค๋ฒ„๋Š” ๋กœ์ปฌ์—์„œ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
173
+
174
+ ```bash
175
+ teamai recall enable # on: deploy the teamai-recall subagent + inject guidance rules
176
+ teamai recall disable # off: remove the subagent and rules
177
+ teamai recall status # show effective state (team default + user override)
178
+ ```
179
+
180
+ **๊ฒ€์ƒ‰์€ subagent๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค**: ์ผœ๋ฉด `teamai pull`์ด ๋‚ด์žฅ `teamai-recall` subagent๋ฅผ ๊ฐ AI ๋„๊ตฌ์˜ `agents/` ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. AI๋Š” ์ž‘์—… ์ „์— ์ด๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , subagent๊ฐ€ ํ‚ค์›Œ๋“œ๋ฅผ ๋ฝ‘๊ณ , ๊ฒ€์ƒ‰์„ ๋Œ๋ฆฌ๊ณ , ๋งž์€ ์›๋ณธ ํŒŒ์ผ์„ ์ฝ์€ ๋’ค ํŒ€ ์ง€์‹์˜ ๊ตฌ์กฐํ™”๋œ ์š”์•ฝ์„ ๋Œ๋ ค์ค๋‹ˆ๋‹ค. subagent๋Š” ๋จผ์ € ๊ด€๋ จ์„ฑ ์‚ฌ์ „ ๊ฒ€์‚ฌ(`teamai recall --check`)๋ฅผ ํ•˜๊ณ , ์ž‘์—…์ด ํŒ€ ์ง€์‹๊ณผ ๋ฌด๊ด€ํ•˜๋ฉด ๊ฒ€์ƒ‰์„ ์•„์˜ˆ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” `teamai recall` ๋ช…๋ น์„ ํ˜ธ์ถœํ•˜๋ฉฐ, ์ง์ ‘ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
181
+
182
+ ```bash
183
+ $ teamai recall "port conflict"
184
+ [1/2] MR review caught a port-conflict bug โ˜…1 [user]
185
+ Author: member-a | Score: 18.5 | Tags: troubleshooting, networking
186
+
187
+ [2/2] Deployment configuration best practices [project]
188
+ Author: member-b | Score: 12.0 | Tags: deploy, config
189
+ Matched: conflict | Missing: port
190
+ ```
191
+
192
+ ### ์ฝ”๋“œ๋ฒ ์ด์Šค ์ง€์‹ ๊ทธ๋ž˜ํ”„
193
+
194
+ `teamai import`๋Š” ์†Œ์Šค ์ €์žฅ์†Œ๋ฅผ `teamwiki/` ์•„๋ž˜์˜ ๊ตฌ์กฐํ™”๋œ ๊ทธ๋ž˜ํ”„๋กœ ํŒŒ์‹ฑํ•ด, ๊ตฌ์กฐ๋ฅผ ์•„๋Š” ๊ฒ€์ƒ‰์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
195
+
196
+ ```bash
197
+ teamai import --from-repo https://github.com/org/repo
198
+ teamai import --from-org myorg # batch import all repos
199
+ teamai codebase --extract /path/to/repo # local extract into teamwiki/
200
+ teamai codebase --deep-enrich --project my-service --output /path/to/repo # generate deep knowledge docs
201
+ teamai codebase --reconcile --output /path/to/repo # map product docs to code pages
202
+ teamai codebase --lint --output /path/to/repo # check the locally extracted graph
203
+ ```
204
+
205
+ Extract๋Š” AI enrichment๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ฑฐ๋‚˜ ๊ฒฐ๊ณผ๊ฐ€ ์—†์–ด๋„ `teamwiki/evidence/code/<project>/_manifest.json`์„ ์“ฐ๋ฏ€๋กœ `--deep-enrich`๋ฅผ ์ด์–ด์„œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
206
+
207
+ ๊ทธ๋ž˜ํ”„๋Š” ์ปดํฌ๋„ŒํŠธ, ์ธํ„ฐํŽ˜์ด์Šค, ์„ค์ •, ์ €์žฅ์†Œ ๊ฐ„ import ์—ฃ์ง€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. `teamai recall`์€ ์ด๋ฅผ ๊ทธ๋ž˜ํ”„ ๋ถ€์ŠคํŒ… ์žฌ๋žญํ‚น์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
208
+ recall ๊ฒฐ๊ณผ๊ฐ€ codebase ํŽ˜์ด์ง€์—์„œ ์˜จ ๊ฒฝ์šฐ, ๊ฒฐ๊ณผ์—๋Š” ๊ด€๋ จ ์†Œ์Šค ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๋‚˜์—ดํ•˜๋Š” `Sources:` ์ค„์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. Agent๊ฐ€ ์ €์žฅ์†Œ๋ฅผ ๋‹ค์‹œ ํƒ์ƒ‰ํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋“œ ๋ณ€๊ฒฝ์˜ ์ถœ๋ฐœ์ ์„ ๋ฐ”๋กœ ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
209
+
210
+ ์—ฃ์ง€๋Š” ํ•จ๊ป˜ ๋„๋Š” ๋‘ ํŠธ๋ž™์—์„œ ๋‚˜์˜ค๋ฉฐ, ๊ฒน์น˜๋ฉด AST ๊ฒฐ๊ณผ๊ฐ€ ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
211
+
212
+ - **AST track** (TypeScript/JavaScript, Python, Go): WASM [tree-sitter](https://tree-sitter.github.io/) ํŒŒ์„œ๊ฐ€ `import`/`require`, ํ˜ธ์ถœ ์ง€์ , TS `implements` ์ ˆ์„ ํŒŒ์ผ ๊ฐ„ ์ •ํ™•ํ•œ `DEPENDS_ON` / `REFERENCES` / `IMPLEMENTS` ์—ฃ์ง€๋กœ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค(`code-ast` ํƒœ๊ทธ, confidence ๊ฐ€์ค‘์น˜).
213
+ - **Heuristic track** (Java/Rust๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ์–ธ์–ด): ์ •๊ทœ์‹ ๊ธฐ๋ฐ˜ ์ถ”์ถœ(`code-heuristic` ํƒœ๊ทธ). AST track์ด ๋‹ค๋ฃจ์ง€ ์•Š๋Š” ์–ธ์–ด๋„ ์ปค๋ฒ„ํ•ฉ๋‹ˆ๋‹ค.
214
+
215
+ WASM ํŒŒ์„œ๋Š” ์ˆœ์ˆ˜ JavaScript ์˜์กด์„ฑ์ด๋ผ ๋„ค์ดํ‹ฐ๋ธŒ ํˆด์ฒด์ธ์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ด์œ ๋กœ๋“  ๋กœ๋“œ์— ์‹คํŒจํ•˜๋ฉด ์ถ”์ถœ์€ heuristic track์œผ๋กœ ๋–จ์–ด์ง€๊ณ  `AST_UNAVAILABLE` gap์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. `TEAMAI_SKIP_AST=1`์„ ์„ค์ •ํ•˜๋ฉด heuristic ์ „์šฉ ์ถ”์ถœ์„ ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค.
216
+
217
+ ## Team Improvement (beta)
218
+
219
+ > Every execution makes the entire team smarter.
220
+
221
+ ### Maintenance
222
+
223
+ Skills์™€ ์ง€์‹์ด ์Œ“์ด๋ฉด, ํŒ€์ด ๋” ์ด์ƒ ์“ฐ์ง€ ์•Š๋Š” ๊ฒƒ์„ ์ •๋ฆฌํ•˜์„ธ์š”. `teamai recall maintenance`๋Š” ์‹ ๋ขฐ๋„๊ฐ€ ๋‚ฎ์€ learnings๋ฅผ ์•„์นด์ด๋ธŒํ•˜๊ณ , ๋‚ก์€ Skills, Rules, docs๋ฅผ ์ •๋ฆฌ ๋˜๋Š” ์—…๋ฐ์ดํŠธ ๋Œ€์ƒ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
224
+
225
+ ```bash
226
+ teamai recall maintenance --prune --dry-run # preview
227
+ teamai recall maintenance --prune --archive # archive unused learnings
228
+ teamai recall maintenance --update-quality # draft updates for stale skills / docs
229
+ ```
230
+
231
+ ํŒ€์ด AI ๋„๊ตฌ๋ฅผ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์“ฐ๋Š”์ง€ ๋ณด๊ณ , ์„ธ์…˜ friction์„ ๊ณต์œ  Skills, Rules, ์ง€์‹์œผ๋กœ ๋ฐ”๊พธ๋Š” ์ถœ๋ฐœ์ ์ž…๋‹ˆ๋‹ค.
232
+
233
+ | ๊ธฐ๋Šฅ | ๋ช…๋ น | ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ |
234
+ |------------|---------|---------------|
235
+ | **Usage** | `teamai digest` | ์ฃผ๊ฐ„ ํŒ€ digest โ€” 7์ผ๊ฐ„์˜ ์„ฑ๊ณต๋ฅ , prompt, ํ™œ์„ฑ ์‹œ๊ฐ„, ์ถ”์ • ๋น„์šฉ, cache, ์ˆ˜์ • ์ถ”์„ธ์™€ ๋ˆ„์  ํ•ฉ๊ณ„. |
236
+ | **Sessions** | `teamai session save` | ๊ฐœ์ธ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•œ ์„ธ์…˜๋ณ„ ์š”์•ฝ(๋„๊ตฌ ์ˆœ์„œ, prompt ํ„ด, ๊ฐœ์ž…)์œผ๋กœ digest์˜ Session Highlights์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. |
237
+ | **Dashboard** | `teamai dashboard` | ์‹ค์‹œ๊ฐ„ ์„ธ์…˜๊ณผ, ์ง์ „ 7์ผ ๋Œ€๋น„ ๋กœ์ปฌ 7์ผ ์ถ”์„ธ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์›น dashboard. |
238
+ | **KB Health** | `teamai dashboard` โ†’ KB Health | ์ง€์‹ ๋ฒ ์ด์Šค ์‚ฌ์šฉ๋Ÿ‰๊ณผ ๊ฑด๊ฐ• ์ƒํƒœ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋‚ด์žฅ dashboard ํŽ˜์ด์ง€ โ€” ์œ ํ˜•๋ณ„ ์ปค๋ฒ„๋ฆฌ์ง€, ์ƒ์œ„ recall ํ•ญ๋ชฉ, ์นจ๋ฌต ํ•ญ๋ชฉ, recall ์ถ”์„ธ, ์ž‘์„ฑ์ž ๊ธฐ์—ฌ, maintenance ์ฝ˜์†”. |
239
+
240
+ ## ๋ช…๋ น์–ด
241
+
242
+ | ๋ช…๋ น | ์„ค๋ช… |
243
+ |---------|-------------|
244
+ | `teamai init` | ์ดˆ๊ธฐํ™”: OAuth ๋กœ๊ทธ์ธ, ์ €์žฅ์†Œ ์—ฐ๊ฒฐ, ๋ฉค๋ฒ„ ๋“ฑ๋ก, hooks ์ฃผ์ž… |
245
+ | `teamai pull` | ํŒ€ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์™€ ๋กœ์ปฌ AI ๋„๊ตฌ์— ์ฃผ์ž… |
246
+ | `teamai push` | ๋กœ์ปฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ธŒ๋žœ์น˜์— pushํ•˜๊ณ  Merge Request๋ฅผ ์—ฝ๋‹ˆ๋‹ค |
247
+ | `teamai packages [install] [target]` | ์„ ์–ธ๋œ npm ํŒจํ‚ค์ง€์™€ Claude ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. target์ด ์žˆ์œผ๋ฉด `teamai.yaml`๋„ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ž ์—†๋Š” `teamai packages`๋Š” ์ „๋ถ€๋ฅผ ์„ค์น˜ํ•˜๊ณ , `teamai packages install <target>`์€ ํ•˜๋‚˜๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค |
248
+ | `teamai status` | ๋กœ์ปฌ๊ณผ ํŒ€ ์ €์žฅ์†Œ์˜ diff ๋ฐ ๋ฆฌ์†Œ์Šค ๊ฐœ์ˆ˜(๋„ค์ž„์ŠคํŽ˜์ด์Šค Skills, ์ค‘์ฒฉ docs ํฌํ•จ)๋ฅผ ํ‘œ์‹œ |
249
+ | `teamai contribute` | ์„ธ์…˜ ๊ฒฝํ—˜์„ ํŒ€ ์ €์žฅ์†Œ์— ๊ณต์œ  |
250
+ | `teamai recall <query>` | ํŒ€ ์ง€์‹ ๋ฒ ์ด์Šค ๊ฒ€์ƒ‰ (BM25 + graph-boost) |
251
+ | `teamai recall enable/disable/status` | recall ์ƒํƒœ๋ฅผ ์ผœ๊ฑฐ๋‚˜ ๋„๊ฑฐ๋‚˜ ํ™•์ธ |
252
+ | `teamai recall promote [learningId]` | ์‹ ๋ขฐ๋„๊ฐ€ ๋†’์€ learning์„ ์ •์‹ ์ง€์‹(skills/rules/docs)์œผ๋กœ ์Šน๊ฒฉ |
253
+ | `teamai recall maintenance` | ์ง€์‹ ๋ฒ ์ด์Šค ๊ฑด๊ฐ• ์œ ์ง€: ์‹ ๋ขฐ๋„๊ฐ€ ๋‚ฎ์€ learnings ์ •๋ฆฌ, confidence ์ ์ˆ˜ ๋˜์“ฐ๊ธฐ, ๋‚ก์€ ํ•ญ๋ชฉ ํ‘œ์‹œ |
254
+ | `teamai import` | ์ง€์‹ ๊ฐ€์ ธ์˜ค๊ธฐ (`--dir`, `--from-repo`, `--from-org`, `--from-repo-list`, `--from-mr`) |
255
+ | `teamai codebase --extract [path]` | ์ฝ”๋“œ ์‚ฌ์‹ค์„ ์ถ”์ถœํ•˜๊ณ  `teamwiki/` ์•„๋ž˜ ๋กœ์ปฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ตฌ์ถ• |
256
+ | `teamai codebase --deep-enrich` | ์ถ”์ถœ๋œ evidence๋กœ ์‹ฌ์ธต ์ง€์‹ ๋ฌธ์„œ ์ƒ์„ฑ |
257
+ | `teamai codebase --reconcile` | ์ œํ’ˆ ๋ฌธ์„œ๋ฅผ ์ถ”์ถœ๋œ ์ฝ”๋“œ ์ง€์‹๊ณผ ๋งž์ถ”๊ธฐ |
258
+ | `teamai codebase --lint` | ์ง€์‹ ๊ทธ๋ž˜ํ”„ ๊ฑด๊ฐ• ๊ฒ€์‚ฌ |
259
+ | `teamai ci extract-mr --url <url>` | CI: MR์—์„œ ์ง€์‹ ์ถ”์ถœ, ๋Œ“๊ธ€ ๊ฒŒ์‹œ, ๋จธ์ง€ ํ›„ ๊ธฐ๋ก |
260
+ | `teamai members` | ํŒ€ ๋ฉค๋ฒ„ ๋ชฉ๋ก |
261
+ | `teamai projects` | ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋…ผ๋ฆฌ ํ”„๋กœ์ ํŠธ์— ์—ฐ๊ฒฐ |
262
+ | `teamai roles` | ํŒ€ roles์™€ namespaces ๊ด€๋ฆฌ |
263
+ | `teamai tags` | ํƒœ๊ทธ ๊ธฐ๋ฐ˜ skill/rule ํ•„ํ„ฐ ๊ด€๋ฆฌ |
264
+ | `teamai skill exclude add/remove/list` | ๋กœ์ปฌ ๋™๊ธฐํ™”์—์„œ ์ œ์™ธํ•  Skills ๊ด€๋ฆฌ ([usage guide](docs/usage-guide.md#excluding-skills-you-dont-need)) |
265
+ | `teamai source` | skill ๊ตฌ๋… ์†Œ์Šค ๊ด€๋ฆฌ(๋‹ค๋ฅธ ํŒ€ ๋˜๋Š” org์˜ ๊ณต์œ  ์ €์žฅ์†Œ) |
266
+ | `teamai remove <type> <name>` | ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  MR์„ ์—ฝ๋‹ˆ๋‹ค |
267
+ | `teamai session save` | ๊ฐœ์ธ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•œ ์„ธ์…˜ ์š”์•ฝ์„ ์›”๋ณ„ ๋กœ๊ทธ์— ๊ธฐ๋ก (`--push`๋Š” `digest`์— ๊ณต๊ธ‰) |
268
+ | `teamai digest` | ์ฃผ๊ฐ„ ํŒ€ ์‚ฌ์šฉ digest ์ƒ์„ฑ |
269
+ | `teamai doctor` | ๊ตฌ์„ฑ ๋ฌธ์ œ ์ง„๋‹จ (`--json`์œผ๋กœ JSON ์ถœ๋ ฅ, CIยทhookยทagent์šฉ) |
270
+ | `teamai uninstall` | ๋ชจ๋“  teamai ๋ฆฌ์†Œ์Šค์™€ hooks ์ œ๊ฑฐ |
271
+
272
+ ## ๋ผ์ด์„ ์Šค
273
+
274
+ [MIT](LICENSE)
275
+
276
+ ## ๊ธฐ์—ฌํ•˜๊ธฐ
277
+
278
+ PR์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ๋จผ์ € [CONTRIBUTING.md](.github/CONTRIBUTING.md)๋ฅผ ์ฝ์–ด ์ฃผ์„ธ์š”.