@nitra/cursor 1.11.14 → 1.11.15
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.
|
@@ -145,7 +145,33 @@ if ! printf '%s' "$RESPONSE_TRIMMED" | grep -q '^## '; then
|
|
|
145
145
|
fi
|
|
146
146
|
|
|
147
147
|
TS=$(date +%Y%m%d-%H%M%S)
|
|
148
|
-
|
|
148
|
+
|
|
149
|
+
# Slug із першого `## [ADR|Runbook|Knowledge] <heading>`-рядка відповіді.
|
|
150
|
+
# Логіка локальна (без додаткового LLM-виклику): використовуємо вже згенерований heading.
|
|
151
|
+
# Конвенція кебаб-slug-у — як у normalize-decisions.sh:171: малі літери, дозволено цифри, дефіс,
|
|
152
|
+
# кирилиця; англомовні технічні терміни лишаються англійською без транслітерації.
|
|
153
|
+
HEADING=$(printf '%s' "$RESPONSE_TRIMMED" \
|
|
154
|
+
| awk '/^## (\[?(ADR|Runbook|Knowledge)\]?)/{ sub(/^## /,""); sub(/^\[?(ADR|Runbook|Knowledge)\]?[[:space:]]*:?[[:space:]]*/,""); print; exit }')
|
|
155
|
+
SLUG=$(printf '%s' "$HEADING" \
|
|
156
|
+
| tr '[:upper:]' '[:lower:]' \
|
|
157
|
+
| sed -E 's/[`«»"]//g; s/[ /,.:;()—–]+/-/g; s/[^a-zа-яёіїєґ0-9-]//g; s/-+/-/g; s/^-//; s/-$//' \
|
|
158
|
+
| cut -c1-60 \
|
|
159
|
+
| sed -E 's/-$//')
|
|
160
|
+
|
|
161
|
+
if [[ -z "$SLUG" ]]; then
|
|
162
|
+
# Fallback на старий формат, якщо heading не спарсився
|
|
163
|
+
OUT="$ADR_DIR/$TS-${SESSION_ID:0:8}.md"
|
|
164
|
+
else
|
|
165
|
+
# Колізії: <timestamp>-<slug>-<n>.md (n=2,3,...), як у normalize-decisions.sh:244-257
|
|
166
|
+
BASE="$ADR_DIR/$TS-$SLUG.md"
|
|
167
|
+
OUT="$BASE"
|
|
168
|
+
n=2
|
|
169
|
+
while [[ -e "$OUT" ]]; do
|
|
170
|
+
OUT="$ADR_DIR/$TS-$SLUG-$n.md"
|
|
171
|
+
n=$((n+1))
|
|
172
|
+
done
|
|
173
|
+
fi
|
|
174
|
+
|
|
149
175
|
{
|
|
150
176
|
printf -- '---\nsession: %s\ncaptured: %s\ntranscript: %s\n---\n\n' \
|
|
151
177
|
"$SESSION_ID" "$(date -Iseconds)" "$TRANSCRIPT_PATH"
|
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
Формат — [Keep a Changelog](https://keepachangelog.com/uk/1.1.0/), нумерація — [SemVer](https://semver.org/lang/uk/).
|
|
6
6
|
|
|
7
|
+
## [1.11.15] - 2026-05-16
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- **`npm/.claude-template/hooks/capture-decisions.sh`** (+`.claude/hooks/capture-decisions.sh` синк) — Stop-hook тепер генерує **slug-name** для чернетки замість session-hash суфікса. Раніше: `<timestamp>-<session-id[0:8]>.md` (наприклад `20260516-090349-e513a1f0.md`). Тепер: `<timestamp>-<slug>.md` (наприклад `20260516-090349-структура-директорій-правила-fix-lint-policy.md`). **Slug береться з вже згенерованого LLM-заголовка** першого `## [ADR|Runbook|Knowledge] <heading>` блоку — без додаткового LLM-виклику, та сама вартість Stop-hook. Конвенція slug-у синхронізована з `normalize-decisions.sh:171`: малі літери, цифри, дефіс, кирилиця; англомовні технічні терміни лишаються англійською (`fix`, `lint`, `policy` — не транслітеруються). Колізії в межах однієї секунди — суфікс `-2`, `-3`, …, як у `normalize-decisions.sh:244-257`. Fallback на старий `<timestamp>-<session-id[0:8]>.md` якщо heading не спарсився (response без `## ADR|Runbook|Knowledge` префікса).
|
|
12
|
+
- **Мотивація:** після прогону `normalize-decisions.sh` нові чернетки створювалися з абстрактними session-hash іменами і знову вимагали LLM-`rewrite`-операцію щоб отримати читабельний slug. Тепер capture одразу пише читабельний slug → наступна нормалізація обмежується лише `delete`/`merge-into` для дублікатів (rename-операції стають рідкісними).
|
|
13
|
+
|
|
7
14
|
## [1.11.14] - 2026-05-16
|
|
8
15
|
|
|
9
16
|
### Removed
|