[feat] Deliver team culture and shared instructions to Qoder, Kiro and Trae
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- developer-experience
Research direction
Start with src/instruction-targets.ts, the TOOLS entries, and the block location tests in src/__tests__/locate-blocks.test.ts; review #1406 first because this issue depends on it. Then check the README matrix and generated tool support pages named in the definition of done. Done means all five tools write and read the marked context file in the specified scopes, cleanup works, and the Qoder CLI harness confirms the culture text loads.
Written by the indexing model from the issue text.
Description
Why
Team culture (culture.md) and shared instructions (claudemd/*.md) reach every agent but Qoder, Qoder CN, Kiro, Trae and Trae CN. Their descriptors set blocks: NONE, so the README culture column shows — for them. Nothing blocks it: #1221's matrix marks these channels + ("the tool supports it and teamai does not build it"), and #1265 only stopped writing into a claudemd the team mapped for them.
All five already read team rules from a rules directory teamai writes, and each has an always-on mode there. Cursor, CodeBuddy and WorkBuddy already get the blocks the same way: an owned teamai-context file in the rules directory, with an always-on header.
TOOLS[tool].blocks
- qoder, qoder-cn, kiro, trae, trae-cn NONE
+ qoder, qoder-cn, kiro, trae, trae-cn { in: 'rules-dir', name: 'teamai-context.md', owned: true, header: … }
README matrix, culture column
- — 5 agents
+ ✓ every agent
Where the blocks go
| Tool | User scope | Workspace scope | Header | Evidence |
|---|---|---|---|---|
| Qoder | ~/.qoder/rules/teamai-context.md |
.qoder/rules/teamai-context.md |
new trigger-always-on (trigger: always_on) |
s: Qoder CLI 1.1.78 loads always-on rules from both directories at startup; d: the IDE's Always Apply rules in .qoder/rules |
| Qoder CN | ~/.qoder-cn/rules/teamai-context.md |
shared with Qoder | the same | s: the same bundle's CN switch; d: the Qoder CN CLI memory docs |
| Kiro | ~/.kiro/steering/teamai-context.md |
.kiro/steering/teamai-context.md |
new inclusion-always (inclusion: always) |
d: global and workspace steering, IDE and CLI |
| Trae | ~/.trae/user_rules/teamai-context.md |
.trae/rules/teamai-context.md |
existing always-apply (alwaysApply: true) |
d: official rules docs |
| Trae CN | ~/.trae-cn/user_rules/teamai-context.md |
shared with Trae | existing always-apply |
d: official CN rules docs |
The Qoder CLI also accepts alwaysApply: true, but trigger: always_on is the form the Qoder IDE writes and the one teamai's Qoder rule format already uses. AGENTS.md is not used in any of the five: it is the member's own file in Qoder and Kiro, Qoder can rename it (context.fileName), and Trae reads it only after the member turns on a setting.
Behavior
BlocksHeadergains'trigger-always-on'and'inclusion-always', mapped inHEADERS(src/instruction-targets.ts). The mapped type makestscfail until both are mapped, andKNOWN_HEADERSpicks them up for cleanup.- Qoder and Qoder CN share
.qoder/rules, and Trae and Trae CN share.trae/rules, so each pair writes one workspace file, as CodeBuddy and WorkBuddy do. teamai-context.mdis already excluded from rules push and stale-rule cleanup (EXCLUDED_RULE_NAMES).
Acceptance criteria
teamai pullin user scope writesteamai-context.mdwith the tool's header into each of the five user directories above, and in workspace scope into.qoder/rules,.kiro/steeringand.trae/rules, one file per directory.- The file holds the culture and shared-instruction blocks, and nothing outside teamai's markers changes on a second pull.
teamai uninstallremoves the file; a later pull with the tool not installed writes nothing for it.- A Qoder CLI session started in a workspace after
teamai pullhas the culture text in its memory (the same harness that verified the Qoder rules cell).
Definition of done
TOOLSentries for the five tools carry theblockschannels above, with their evidence. The README culture ticks, in everyREADME*.md, follow:readme-matrix.test.tsfails until they do.docs/guide/tool-support.mdand its Chinese page regenerated withnpx vitest run tool-support -u.docs/guide/team-culture.mdanddocs/guide/zh-CN/team-culture.md: "Where the blocks go" gains the rows above.- The
channel: 'none'rows for these tools insrc/__tests__/locate-blocks.test.tsbecome write and read rows. - Real-CLI record:
teamai pullin a workspace with Qoder CLI installed, the written file, and the session that loads it.
Watch out for
- The blocks now share each tool's rules budget: the Qoder IDE truncates past 100,000 characters across all active rules, and the Kiro CLI drops context files past 75% of the context window. A large
claudemdcan push team rules out. - Unknown or not covered: the Qoder IDE's user scope, Kiro CLI sessions running a teamai-rendered custom agent (no steering, as with rules today), and Trae cloud tasks (local rules only).
- The recall block repeats the built-in
teamai-recallrule these tools already get. Cursor, CodeBuddy, WorkBuddy and Claude Code already get both. Keep the behavior consistent here and settle the duplication across tools separately. - The Trae docs now name
~/.trae/user_rulesand.trae/rules, so Trae'srulesread evidence can move fromunknownandassumedtodocsin the same PR.
Out of scope
- Removing the recall duplication.
- Deriving the header from each tool's rule format instead of
HEADERS.
Dependencies
- Needs #1406 merged: it adds the README culture column and its check.
- Dominant language
- TypeScript
- Stars
- 5.6k
- Forks
- 471
- Avg merge
- 21h 39m
- Merged PRs (30d)
- 377
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Tencent/teamai-cli
-
[bug] `init --scope user` trusts Codex hooks although the machine file says `codexTrustEnabled: false`Possibly taken @hz89Dev claimed this today. Openbug help wanted
Difficulty 4/5 3-5 days Newbie friendliness 57/100
Tencent/teamai-cli#1484 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
Tencent/teamai-cli#1469 ·
Maintainers usually reply within 1 day
-
[feat] Read every member setting in one order: environment, this scope, this machine, the teamPossibly taken @hz89Dev claimed this today. Openenhancement
Difficulty 5/5 Over a week Newbie friendliness 20/100
Tencent/teamai-cli#1459 · 3 comments ·
Maintainers usually reply within 1 day
-
bug help wanted
Difficulty 4/5 1-2 days Newbie friendliness 48/100
Tencent/teamai-cli#1446 · 2 comments ·
Maintainers usually reply within 1 day
-
teamai-reports checkout conflict between user scope and project scope of the same single-repo (kind: self) team repo (variant not covered by #808)Possibly taken @Walternater claimed this 1 day ago. Openbug help wanted
Difficulty 4/5 3-5 days Newbie friendliness 25/100
Tencent/teamai-cli#1443 · 5 comments ·
Maintainers usually reply within 1 day
All issues in Tencent/teamai-cli
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
scaleway/ultraviolet#7089 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
tencent-connect/dsh-qqbot#81 ·
Maintainers usually reply within 1 day
-
[Bug]: Pen taps on sidebar rows start a drag and lose their clickPossibly taken @makhnatkin claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
clangd/vscode-clangd#1009 ·