@synity/bitrix-skills 1.3.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/CHANGELOG.md +169 -0
- package/LICENSE +21 -0
- package/README.md +83 -0
- package/bin/bitrix-skills.js +3 -0
- package/dist/cli.js +1510 -0
- package/dist/features/bx-task/install.js +111 -0
- package/dist/features/task-sync/index.js +1053 -0
- package/package.json +69 -0
- package/src/features/bx/assets/SKILL.md +34 -0
- package/src/features/bx/feature.json +8 -0
- package/src/features/bx-calendar/assets/SKILL.md +61 -0
- package/src/features/bx-calendar/assets/availability.md +65 -0
- package/src/features/bx-calendar/assets/meeting.md +87 -0
- package/src/features/bx-calendar/assets/reminder.md +71 -0
- package/src/features/bx-calendar/assets/sync.md +70 -0
- package/src/features/bx-calendar/feature.json +10 -0
- package/src/features/bx-crm/assets/SKILL.md +59 -0
- package/src/features/bx-crm/assets/commerce.md +96 -0
- package/src/features/bx-crm/assets/onboard.md +127 -0
- package/src/features/bx-crm/assets/report.md +98 -0
- package/src/features/bx-crm/assets/research.md +71 -0
- package/src/features/bx-crm/feature.json +10 -0
- package/src/features/bx-task/assets/SKILL.md +148 -0
- package/src/features/bx-task/assets/lib/bx-api.sh +39 -0
- package/src/features/bx-task/assets/lib/bx-checklist.sh +127 -0
- package/src/features/bx-task/assets/lib/bx-resolve-task.sh +41 -0
- package/src/features/bx-task/assets/lib/bx-state.sh +131 -0
- package/src/features/bx-task/assets/lib/bx-tasks.sh +109 -0
- package/src/features/bx-task/assets/references/bootstrap.md +184 -0
- package/src/features/bx-task/assets/references/feature.md +97 -0
- package/src/features/bx-task/assets/references/init-templates/cli-tool.md +47 -0
- package/src/features/bx-task/assets/references/init-templates/generic.md +31 -0
- package/src/features/bx-task/assets/references/init-templates/library.md +45 -0
- package/src/features/bx-task/assets/references/init-templates/monorepo.md +38 -0
- package/src/features/bx-task/assets/references/init-templates/npm-package.md +40 -0
- package/src/features/bx-task/assets/references/init-templates/web-app.md +46 -0
- package/src/features/bx-task/assets/references/init.md +107 -0
- package/src/features/bx-task/assets/references/roadmap.md +93 -0
- package/src/features/bx-task/assets/references/summary.md +269 -0
- package/src/features/bx-task/assets/references/sync.md +104 -0
- package/src/features/bx-task/assets/references/time-log.md +214 -0
- package/src/features/bx-task/feature.json +10 -0
- package/src/features/bx-task/install.ts +117 -0
- package/src/features/task-sync/assets/docs/bitrix-task-reference.md +318 -0
- package/src/features/task-sync/assets/docs/bitrix-task-sync.md +254 -0
- package/src/features/task-sync/assets/githooks/commit-msg +44 -0
- package/src/features/task-sync/assets/githooks/install.sh +15 -0
- package/src/features/task-sync/assets/manifest.json +108 -0
- package/src/features/task-sync/assets/rules/00-bitrix-task-sync.md +161 -0
- package/src/features/task-sync/assets/scripts/bitrix-attach-files.sh +55 -0
- package/src/features/task-sync/assets/scripts/bitrix-lib.sh +540 -0
- package/src/features/task-sync/assets/scripts/bitrix-render-digest.sh +116 -0
- package/src/features/task-sync/assets/scripts/bitrix-session-check.sh +51 -0
- package/src/features/task-sync/assets/scripts/bitrix-session-sync.sh +89 -0
- package/src/features/task-sync/assets/scripts/bitrix-skill-end.sh +165 -0
- package/src/features/task-sync/assets/scripts/bitrix-skill-start.sh +58 -0
- package/src/features/task-sync/assets/scripts/lib/bb-formatter.sh +110 -0
- package/src/features/task-sync/assets/scripts/lib/bitrix-lib.sh +540 -0
- package/src/features/task-sync/assets/scripts/lib/time-helpers.sh +57 -0
- package/src/features/task-sync/assets/workflows/bitrix-sync.yml +85 -0
- package/src/features/task-sync/commands/install.ts +296 -0
- package/src/features/task-sync/commands/uninstall.ts +189 -0
- package/src/features/task-sync/commands/update.ts +11 -0
- package/src/features/task-sync/commands/verify.ts +141 -0
- package/src/features/task-sync/feature.json +12 -0
- package/src/features/task-sync/index.ts +121 -0
- package/src/features/task-sync/lib/dest-map.ts +96 -0
- package/src/features/task-sync/lib/drift-check.ts +47 -0
- package/src/features/task-sync/lib/file-ops.ts +36 -0
- package/src/features/task-sync/lib/manifest.ts +66 -0
- package/src/features/task-sync/lib/project-root.ts +38 -0
- package/src/features/task-sync/lib/settings-merge.ts +112 -0
- package/src/features/task-sync/lib/skill-refs.ts +106 -0
- package/src/features/task-sync/lib/task-id-finder.ts +31 -0
- package/src/features/task-sync/lib/token-extractor.ts +52 -0
- package/src/features/task-sync/lib/version.ts +36 -0
- package/src/features/task-sync/types.ts +40 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 1.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 908b282: "bx:task v2.0 — 7-subcommand router with bootstrap/feature/roadmap"
|
|
8
|
+
|
|
9
|
+
## 1.1.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- **bx-task v1.1.0**: Add `sync` and `init` subcommands
|
|
14
|
+
|
|
15
|
+
- `sync [--task-id N]` — post session digest (git log + context) as Bitrix task comment
|
|
16
|
+
- `init [--task-id N]` — detect/insert TASK_ID block into nearest CLAUDE.md
|
|
17
|
+
|
|
18
|
+
- **bx-crm skeleton**: Register `bx-crm` feature (planned — subcommands defined, not yet implemented)
|
|
19
|
+
|
|
20
|
+
- **bx-calendar skeleton**: Register `bx-calendar` feature (planned — subcommands defined, not yet implemented)
|
|
21
|
+
|
|
22
|
+
## 1.0.0
|
|
23
|
+
|
|
24
|
+
### Major Changes
|
|
25
|
+
|
|
26
|
+
- Initial v1.0.0 release. Multi-feature CLI for Bitrix24 + Claude Code integration.
|
|
27
|
+
|
|
28
|
+
Breaking changes vs `@synity/bitrix-task-sync@0.2.3`:
|
|
29
|
+
|
|
30
|
+
- Package renamed: `@synity/bitrix-task-sync` → `@synity/bitrix-tools`
|
|
31
|
+
- CLI binary renamed: `bitrix-task-sync` → `bitrix-tools`
|
|
32
|
+
- Install command: `npx bitrix-task-sync install` → `npx bitrix-tools install task-sync`
|
|
33
|
+
- Manifest file: `<project>/.bitrix-tools.json` (new, replaces ad-hoc detection)
|
|
34
|
+
|
|
35
|
+
New features:
|
|
36
|
+
|
|
37
|
+
- Multi-feature CLI: `task-sync` (project hooks) + `bx-task` (global skill)
|
|
38
|
+
- Interactive feature picker: `npx bitrix-tools install`
|
|
39
|
+
- `list`, `verify`, `update`, `uninstall` commands
|
|
40
|
+
- Shared TS + bash lib SSOT in `src/lib/`
|
|
41
|
+
- Extensible: add new Bitrix feature by creating `src/features/<name>/`
|
|
42
|
+
|
|
43
|
+
Migration guide: run `npx @synity/bitrix-tools install task-sync` in your project.
|
|
44
|
+
|
|
45
|
+
All notable changes to `@synity/bitrix-task-sync` will be documented in this file.
|
|
46
|
+
|
|
47
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
48
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
49
|
+
|
|
50
|
+
## [Unreleased]
|
|
51
|
+
|
|
52
|
+
## [0.2.3] - 2026-05-10
|
|
53
|
+
|
|
54
|
+
### Fixed
|
|
55
|
+
|
|
56
|
+
- **Hooks not firing on every session — `session_id` resolution** (CRITICAL). `bitrix-skill-start.sh` and `bitrix-skill-end.sh` extracted `session_id` from PreToolUse/PostToolUse payloads, but Claude Code does NOT include `session_id` in those payloads (only `Stop` does). State landed at `<SESSION_DIR>/unknown.json`; Stop hook (which DOES get the real `session_id`) looked for `<real-id>.json`, missed it, and exited in <100ms with no digest, no time tracking, no token totals. Fix: fall back to `$CK_SESSION_ID` env var (already set by user-level `session-init.cjs` SessionStart hook). Applied identically to all 3 scripts (`bitrix-skill-start.sh`, `bitrix-skill-end.sh`, `bitrix-session-sync.sh`) so every hook resolves to the same SESSION_ID.
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# OLD: lands at unknown.json on PreToolUse/PostToolUse
|
|
60
|
+
SESSION_ID=$(echo "$PAYLOAD" | jq -r '.session_id // "unknown"')
|
|
61
|
+
|
|
62
|
+
# NEW: payload first, env fallback, then unknown
|
|
63
|
+
SESSION_ID=$(echo "$PAYLOAD" | jq -r '.session_id // empty')
|
|
64
|
+
SESSION_ID=${SESSION_ID:-${CK_SESSION_ID:-unknown}}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Symptom user reported: brainstorm/plan/cook skills ran but Bitrix task chat received no comments. Verification post-fix: `ls /tmp/claude-b24/` shows `<real-session-id>.json` instead of `unknown.json`; Stop hook posts digest as expected.
|
|
68
|
+
|
|
69
|
+
## [0.2.2] - 2026-05-10
|
|
70
|
+
|
|
71
|
+
### Fixed
|
|
72
|
+
|
|
73
|
+
- **Skill end hook function ordering** — `_attach_skill_artifacts()` was defined AFTER the `exit 0` early-return path; bash does not pre-parse functions past `exit`, so calls fired `command not found`. Moved definition above the early-return guard.
|
|
74
|
+
- **Stop hook bash invocation** — `bitrix-render-digest.sh` lacks execute bit on fresh installs; Stop hook now prefixes with `bash` to avoid permission-denied on new clones.
|
|
75
|
+
- **Worktree path detection** — `.git` is a file (not dir) in worktrees, breaking `git rev-parse --show-toplevel` for Drive root; now uses `--git-common-dir` to detect the shared main worktree path. Avoids per-worktree Drive folder fragmentation.
|
|
76
|
+
- **Fallback JSONL probe** — when transcript path resolution fails, fallback glob now excludes `subagents/` directory and sorts newest-first, ensuring we read the parent session transcript (not a subagent's truncated log).
|
|
77
|
+
- **Native task timer** — replaced manual `tasks.task.start` + `task.elapseditem.add` chain with native `tasks.task.startTimer` / `pauseTimer` (correct REST v2 method names). Removes one round-trip per skill, eliminates orphan time entries on crash.
|
|
78
|
+
- **Stop hook redundant link** — removed duplicate `🔗 Task` line from digest header (now appears only at footer with task title).
|
|
79
|
+
- **Skill output filter** — added `_has_useful_content()` guard before posting "skill xong" comments to prevent spam from skills that emit only JSON status / empty stdout (e.g. `git-manager`, `code-reviewer` returning structured-only output).
|
|
80
|
+
- **Phase 3a checklist sync wiring** — `b24_sync_checklist` was implemented but never called from skill-end hook; added wire in `bitrix-skill-end.sh` after artifact attach so plan-emitted `bitrix-checklist` blocks now propagate to Bitrix.
|
|
81
|
+
|
|
82
|
+
### Verified
|
|
83
|
+
|
|
84
|
+
- Token tracking `UF_AI_TOKENS_TOTAL` accumulator working stably across full-day usage (no race conditions observed in single-developer scenario).
|
|
85
|
+
|
|
86
|
+
### Build
|
|
87
|
+
|
|
88
|
+
- `pnpm build` re-syncs assets from monorepo root + rebuilds `dist/`.
|
|
89
|
+
|
|
90
|
+
### Companion
|
|
91
|
+
|
|
92
|
+
- New global Claude Code skill `/bx:task` (separate install at `~/.claude/skills/bx-task/`) — manual KB summary posting (5 templates) + manual time entries. Complements the auto-sync hooks shipped here. See `README.md` "Companion: /bx:task skill".
|
|
93
|
+
|
|
94
|
+
## [0.2.1] - 2026-05-10
|
|
95
|
+
|
|
96
|
+
### Refactored
|
|
97
|
+
|
|
98
|
+
- **BB code throughout** — replaced markdown templates with Bitrix BB code in `bitrix-skill-end.sh`, `bitrix-render-digest.sh`, `bitrix-lib.sh`. Headings → `[b]...[/b]`, bullets → `•`, code → `[code]...[/code]`. Markdown was rendering as literal text in Bitrix chat (cosmetic regression in 0.2.0).
|
|
99
|
+
- **No-ceiling time format** — `_format_duration` now emits `5m 12s` (precise) instead of `6m` (ceiling). Hooks measure per-skill elapsed in integer seconds; ceiling lost up to 59s precision per skill.
|
|
100
|
+
- **Approach C time tracking** — Stop hook now calls `task.elapseditem.add` ONCE per session with cumulative `elapsed_seconds`, instead of N times (one per PostToolUse). Reduces system-message spam from 2N to 2 per session. Orphan PostToolUse calls (no matching PreToolUse) are clamped to 0 to prevent the "29M phút" runaway bug.
|
|
101
|
+
|
|
102
|
+
### Fixed
|
|
103
|
+
|
|
104
|
+
- Webhook user identity confirmed as user 614 "Claude" (non-admin); rights.edit/remove = true on own posts → cleanup operations safe.
|
|
105
|
+
|
|
106
|
+
## [0.2.0] - 2026-05-10
|
|
107
|
+
|
|
108
|
+
### Added
|
|
109
|
+
|
|
110
|
+
- **Token tracking** (`UF_AI_TOKENS_TOTAL` custom field) — `install` now calls `task.item.userfield.add` to create a numeric field on `TASKS_TASK`; Stop hook reads current value from transcript JSONL, accumulates `input + output` tokens, and writes back via `tasks.task.update`. Digest comment shows `🪙 Xk in / Yk out / Zk cached | task total: N tokens`.
|
|
111
|
+
- **Time tracking lifecycle** — `bitrix-session-check.sh` (SessionStart) auto-enables `ALLOW_TIME_TRACKING` per task if not already set, posting a one-time audit comment with sentinel `[BTS-AUTO-TIMETRACK-V1]` to prevent spam. `bitrix-skill-start.sh` uses an atomic flock-based counter to call `tasks.task.start` on the first skill of a session; `bitrix-skill-end.sh` calls `tasks.task.pause` on the last. Stop hook force-pauses as crash-safety.
|
|
112
|
+
- **File attach** — PostToolUse hook for `plan/planner/brainstorm/cook/research/journal` skills parses `\`\`\`bitrix-artifact\`\`\``fenced block from tool output (or falls back to glob of recently modified`.md`files), uploads to group/user drive via`disk.folder.uploadfile`, attaches to task via `tasks.task.files.attach`. Drive layout: `AI Sessions/<repo>/<rel-dir>/`.
|
|
113
|
+
- **Cook completion digest** — Stop hook renders a full session summary: plan title + phase progress (checkbox ratio), skills + total minutes, token line, attached file list, and git commits since session start. Uses new pure-render helper `bitrix-render-digest.sh`.
|
|
114
|
+
- **`verify` disk scope probe** — reports whether `disk` scope is available; warns clearly if missing (file-attach degrades gracefully, install still succeeds).
|
|
115
|
+
- New scripts: `bitrix-attach-files.sh` (standalone attach orchestrator), `bitrix-render-digest.sh` (pure digest renderer).
|
|
116
|
+
- New TS module: `src/lib/token-extractor.ts` — parses Claude Code transcript JSONL for token usage.
|
|
117
|
+
- 17 new Vitest cases across 4 test files: `token-tracker`, `time-tracking`, `file-attach`, `digest-render`.
|
|
118
|
+
|
|
119
|
+
### Changed
|
|
120
|
+
|
|
121
|
+
- `bitrix-session-check.sh` — now writes `BTS_SESSION_START_ISO` to session env file for digest; probes task status on SessionStart (skips lifecycle if STATUS=5 closed); wipes stale skill counter.
|
|
122
|
+
- `bitrix-skill-start.sh` — increments skill counter; calls `tasks.task.start` on 0→1 transition.
|
|
123
|
+
- `bitrix-skill-end.sh` — decrements counter; calls `tasks.task.pause` on 1→0; triggers artifact attach for applicable skills.
|
|
124
|
+
- `bitrix-session-sync.sh` — delegates rendering to `bitrix-render-digest.sh`; accumulates session tokens; force-pauses task; cleans up all session tmp files.
|
|
125
|
+
- `bitrix-lib.sh` — added Phase 1–3 helpers: `b24_ensure_uf`, `b24_task_get_uf_tokens`, `b24_task_set_uf_tokens`, `_compute_session_tokens`, `b24_finalize_session_tokens`, `_skill_counter_incr/decr`, `b24_task_start/pause/status`, `b24_ensure_timetracking`, `b24_disk_get_root_folder`, `b24_disk_ensure_folder`, `b24_disk_upload`, `b24_task_attach_file`, `b24_attach_artifact`.
|
|
126
|
+
|
|
127
|
+
### Notes
|
|
128
|
+
|
|
129
|
+
- **Breaking:** webhook user now requires **edit-task** permission (previously comment-only was sufficient). Needed for `tasks.task.start/pause/update`.
|
|
130
|
+
- **Known issue:** `tasks.task.file.attach` (v3) is broken on Bitrix portal with `Class "File" requires attribute "DtoType"` — shipping with legacy `tasks.task.files.attach`. Awaiting Bitrix support fix.
|
|
131
|
+
- **Race condition (documented):** `UF_AI_TOKENS_TOTAL` accumulator is read-modify-write (not atomic). Two concurrent Stop hooks on the same task may lose one session's tokens. Acceptable for single-developer usage (one session at a time).
|
|
132
|
+
|
|
133
|
+
## [0.1.1] - 2026-05-10
|
|
134
|
+
|
|
135
|
+
### Fixed
|
|
136
|
+
|
|
137
|
+
- **`b24_call` now streams curl response to stdout** instead of redirecting to `/dev/null` — `verify` smoke test (`/"result"/` regex) was always failing because the JSON response was discarded. Without this fix, `verify` exits 3 even when the webhook is healthy.
|
|
138
|
+
|
|
139
|
+
### Added
|
|
140
|
+
|
|
141
|
+
- **Skill ref counting** — `~/.claude/skills/bitrix-sync-install/` is now reference-counted via a sidecar `.refs.json`. Each `install` registers the project; `uninstall` removes shared skill files only when the last project unlinks, so uninstall in project A never breaks project B.
|
|
142
|
+
- New `clearAllRefs` / `getSkillDir` / `getRefsFile` helpers in `lib/skill-refs.ts` (lazy path resolution for testability).
|
|
143
|
+
- 10 new vitest cases for cross-project install/uninstall, idempotency, dry-run safety, and migration fallback.
|
|
144
|
+
|
|
145
|
+
### Changed
|
|
146
|
+
|
|
147
|
+
- `--remove-skill` now also clears the entire refs registry (previously would leave stale entries).
|
|
148
|
+
- Empty registry + skill files present is treated as ambiguous (likely pre-ref-counting install) — files preserved unless `--remove-skill` is passed.
|
|
149
|
+
|
|
150
|
+
## [0.1.0] - 2026-05-09
|
|
151
|
+
|
|
152
|
+
### Added
|
|
153
|
+
|
|
154
|
+
- Initial release of `@synity/bitrix-task-sync` — portable npm package + Claude Code skill for installing Bitrix Task Sync into any project via `npx`.
|
|
155
|
+
- `install` command — copies 11 managed files (5 hook scripts, 2 githooks, 1 layer rule, 2 docs, 1 GitHub workflow) + merges 4 hook triggers into `.claude/settings.json`.
|
|
156
|
+
- `uninstall` command — removes only sha256-matching files (preserves user modifications) + cleans Bitrix entries from settings without touching user hooks.
|
|
157
|
+
- `verify` command — end-to-end smoke test: TASK_ID presence, `BITRIX_WEBHOOK_URL`, live webhook POST, manifest drift check. Distinct exit codes (1/2/3/4) per failure.
|
|
158
|
+
- `update` command — alias for `install --force` to refresh managed files to current SSOT versions.
|
|
159
|
+
- Build-time SSOT sync (`scripts/sync-assets.mjs`) — copies from monorepo root → `assets/` with sha256 manifest generation.
|
|
160
|
+
- Idempotent settings merge using `deepmerge` with array dedup by `JSON.stringify`.
|
|
161
|
+
- Brownfield-safe install — preserves existing `.claude/settings.json` user hooks, never modifies `CLAUDE.md`, skips user-modified files without `--force`.
|
|
162
|
+
- Skill orchestrator at `~/.claude/skills/bitrix-sync-install/` — interactive 7-step Claude Code skill that runs the CLI on the user's behalf.
|
|
163
|
+
- 18 vitest cases covering install (10), uninstall (4), and manifest drift (4) scenarios.
|
|
164
|
+
|
|
165
|
+
### Notes
|
|
166
|
+
|
|
167
|
+
- Requires Node.js >= 20.
|
|
168
|
+
- Skill install uses `os.homedir()` (cross-platform), respects `--no-skill` for CI.
|
|
169
|
+
- Live `npm publish` deferred until first downstream-app smoke test.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Synity Vietnam JSC
|
|
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,83 @@
|
|
|
1
|
+
# @synity/bitrix-skills
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@synity/bitrix-skills)
|
|
4
|
+
[](https://github.com/synity-tech/bitrix-tools/actions/workflows/ci.yml)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
|
|
7
|
+
Multi-feature CLI for **Bitrix24 + Claude Code** integration — task sync hooks, skills, and more.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
|
|
13
|
+
| Feature | Target | Description |
|
|
14
|
+
|---------|--------|-------------|
|
|
15
|
+
| `task-sync` | project | AI session sync to Bitrix task chat via hooks |
|
|
16
|
+
| `bx-task` | global (`~/.claude/skills`) | Claude Code skill for Bitrix task management |
|
|
17
|
+
| `bx-crm` | global (`~/.claude/skills`) | Claude Code skill for CRM: contacts, deals, companies, analysis, reports |
|
|
18
|
+
| `bx-calendar` | global (`~/.claude/skills`) | Claude Code skill for Calendar: meetings, reminders, availability, CRM sync |
|
|
19
|
+
| `bx` | global (`~/.claude/skills`) | Hub router skill — discovery entry point for all bx:* skills |
|
|
20
|
+
|
|
21
|
+
## Install
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npx @synity/bitrix-skills install
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Interactive picker. Or:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npx @synity/bitrix-skills install --all # all features
|
|
31
|
+
npx @synity/bitrix-skills install task-sync # specific feature
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Commands
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
bitrix-skills install [features...] # install with picker or by name
|
|
38
|
+
bitrix-skills install --all # install all features
|
|
39
|
+
bitrix-skills list # show available + installed status
|
|
40
|
+
bitrix-skills verify # verify installed file checksums
|
|
41
|
+
bitrix-skills update # update installed features to latest
|
|
42
|
+
bitrix-skills uninstall <feature> # remove a feature
|
|
43
|
+
bitrix-skills --version
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Requirements
|
|
47
|
+
|
|
48
|
+
- Node.js >= 20
|
|
49
|
+
- `BITRIX_WEBHOOK_URL` env var (for `task-sync`)
|
|
50
|
+
- `bitrix-synity-mcp` MCP server (for `bx-task` skill)
|
|
51
|
+
|
|
52
|
+
## Quick start (task-sync)
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# 1. Install into your project
|
|
56
|
+
npx @synity/bitrix-skills install task-sync
|
|
57
|
+
|
|
58
|
+
# 2. Set TASK_ID in CLAUDE.md
|
|
59
|
+
echo -e "## Bitrix Task\nTASK_ID: 12345" >> CLAUDE.md
|
|
60
|
+
|
|
61
|
+
# 3. Export webhook URL
|
|
62
|
+
export BITRIX_WEBHOOK_URL="https://your-portal.bitrix24.com/rest/1/xxx/"
|
|
63
|
+
|
|
64
|
+
# 4. Start Claude Code session - hooks fire automatically
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Migration from `@synity/bitrix-task-sync`
|
|
68
|
+
|
|
69
|
+
See [docs/migration-from-bitrix-task-sync.md](docs/migration-from-bitrix-task-sync.md).
|
|
70
|
+
|
|
71
|
+
## Documentation
|
|
72
|
+
|
|
73
|
+
- [docs/feature-task-sync.md](docs/feature-task-sync.md)
|
|
74
|
+
- [docs/feature-bx-task.md](docs/feature-bx-task.md)
|
|
75
|
+
- [docs/architecture.md](docs/architecture.md)
|
|
76
|
+
|
|
77
|
+
## Contributing
|
|
78
|
+
|
|
79
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
80
|
+
|
|
81
|
+
## License
|
|
82
|
+
|
|
83
|
+
MIT (c) 2026 Synity Vietnam JSC
|