@seanyao/roll 2026.505.3 → 2026.506.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/bin/roll +13 -1
- package/conventions/global/AGENTS.md +4 -0
- package/package.json +1 -1
package/bin/roll
CHANGED
|
@@ -4,7 +4,7 @@ set -euo pipefail
|
|
|
4
4
|
# Roll — AI Agent Convention Manager
|
|
5
5
|
# Single source of truth for how all AI coding agents behave.
|
|
6
6
|
|
|
7
|
-
VERSION="2026.
|
|
7
|
+
VERSION="2026.506.2"
|
|
8
8
|
ROLL_HOME="${ROLL_HOME:-${HOME}/.roll}"
|
|
9
9
|
ROLL_CONFIG="${ROLL_HOME}/config.yaml"
|
|
10
10
|
ROLL_GLOBAL="${ROLL_HOME}/conventions/global"
|
|
@@ -64,6 +64,7 @@ lower_name() {
|
|
|
64
64
|
echo "$1" | tr '[:upper:]' '[:lower:]'
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
|
|
67
68
|
# Check if an AI tool is actually installed.
|
|
68
69
|
# Most tools create their own config dir; Trae on macOS uses Library/Application Support
|
|
69
70
|
# and expects roll to manage ~/.trae/ — so we detect via the app directory instead.
|
|
@@ -78,6 +79,10 @@ _is_ai_installed() {
|
|
|
78
79
|
[[ -d "$HOME/.config/Trae" ]]
|
|
79
80
|
return
|
|
80
81
|
;;
|
|
82
|
+
opencode)
|
|
83
|
+
[[ -x "$HOME/.opencode/bin/opencode" ]]
|
|
84
|
+
return
|
|
85
|
+
;;
|
|
81
86
|
esac
|
|
82
87
|
return 1
|
|
83
88
|
}
|
|
@@ -117,6 +122,7 @@ _ensure_config_entries() {
|
|
|
117
122
|
"ai_codex:~/.codex|AGENTS.md|AGENTS.md"
|
|
118
123
|
"ai_cursor:~/.cursor|.cursor-rules|.cursor-rules"
|
|
119
124
|
"ai_trae:~/.trae|user_rules.md|project_rules.md"
|
|
125
|
+
"ai_opencode:~/.config/opencode|AGENTS.md|AGENTS.md"
|
|
120
126
|
"ai_openclaw:~/.openclaw/workspace|AGENTS.md|AGENTS.md"
|
|
121
127
|
)
|
|
122
128
|
|
|
@@ -328,6 +334,7 @@ ai_kimi: ~/.kimi|AGENTS.md|AGENTS.md
|
|
|
328
334
|
ai_codex: ~/.codex|AGENTS.md|AGENTS.md
|
|
329
335
|
ai_cursor: ~/.cursor|.cursor-rules|.cursor-rules
|
|
330
336
|
ai_trae: ~/.trae|user_rules.md|project_rules.md
|
|
337
|
+
ai_opencode: ~/.config/opencode|AGENTS.md|AGENTS.md
|
|
331
338
|
ai_openclaw: ~/.openclaw/workspace|AGENTS.md|AGENTS.md
|
|
332
339
|
|
|
333
340
|
# User preferences
|
|
@@ -711,6 +718,10 @@ cmd_init() {
|
|
|
711
718
|
_write_backlog "$project_dir/BACKLOG.md"
|
|
712
719
|
_ensure_features_dir "$project_dir/docs/features"
|
|
713
720
|
print_merge_summary
|
|
721
|
+
|
|
722
|
+
echo ""
|
|
723
|
+
info "Syncing conventions to AI tools... 正在同步约定到 AI 工具..."
|
|
724
|
+
_sync_conventions
|
|
714
725
|
echo ""
|
|
715
726
|
|
|
716
727
|
if [[ "$has_agents" == "true" ]]; then
|
|
@@ -720,6 +731,7 @@ cmd_init() {
|
|
|
720
731
|
fi
|
|
721
732
|
}
|
|
722
733
|
|
|
734
|
+
|
|
723
735
|
# ─── Helper: merge global preamble + template into output ────────────────────
|
|
724
736
|
merge_convention() {
|
|
725
737
|
local filename="$1"
|
|
@@ -30,6 +30,10 @@
|
|
|
30
30
|
- **Testing**: Unit >80%. E2E for flows. No DB mocks.
|
|
31
31
|
|
|
32
32
|
## 4. Workflow
|
|
33
|
+
- **Scope Gate**: Only implement what is explicitly listed in the AC. Nothing more.
|
|
34
|
+
- Requests made in conversation are NOT AC — capture with `roll-jot` first.
|
|
35
|
+
- Any new Story/Fix requires design doc + user confirmation before TCR starts.
|
|
36
|
+
- Do not commit without user approval unless explicitly told to auto-commit.
|
|
33
37
|
- **TCR**: Test -> Green = Commit / Red = Revert. No WIP commits.
|
|
34
38
|
- Before implementing: confirm exact files, test strategy, and commit message
|
|
35
39
|
draft with user. Do not write code until approved.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seanyao/roll",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.506.2",
|
|
4
4
|
"description": "Roll — Roll out features with AI agents",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "find tests/unit tests/integration -name '*.bats' | sort | xargs ./tests/helpers/bats-core/bin/bats"
|