@windyroad/retrospective 0.12.3 → 0.12.4-preview.259

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.
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "wr-retrospective",
3
- "version": "0.12.3",
3
+ "version": "0.12.4",
4
4
  "description": "Session retrospective reminders and plan review for Claude Code"
5
5
  }
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env bash
2
+ exec "$(dirname "$0")/../scripts/list-plugin-attribution.sh" "$@"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@windyroad/retrospective",
3
- "version": "0.12.3",
3
+ "version": "0.12.4-preview.259",
4
4
  "description": "Session retrospectives that update briefings and create problem tickets",
5
5
  "bin": {
6
6
  "windyroad-retrospective": "./bin/install.mjs"
@@ -54,22 +54,28 @@ The output is the deep layer's baseline. Parse each `BUCKET <name> bytes=<N>` ro
54
54
  The cheap layer reports `hooks` and `skills` as aggregates. The deep layer decomposes each by plugin, citing concrete byte counts per plugin:
55
55
 
56
56
  ```bash
57
- # Per-plugin hooks decomposition
58
- for plugin_dir in packages/*/hooks; do
59
- plugin=$(basename "$(dirname "$plugin_dir")")
60
- bytes=$(find "$plugin_dir" -type f -name '*.sh' -print0 2>/dev/null | xargs -0 wc -c 2>/dev/null | tail -1 | awk '{print $1}')
61
- printf 'PLUGIN-HOOKS %s bytes=%s\n' "$plugin" "${bytes:-0}"
62
- done
63
-
64
- # Per-plugin skills decomposition
65
- for plugin_dir in packages/*/skills; do
66
- plugin=$(basename "$(dirname "$plugin_dir")")
67
- bytes=$(find "$plugin_dir" -type f -name 'SKILL.md' -print0 2>/dev/null | xargs -0 wc -c 2>/dev/null | tail -1 | awk '{print $1}')
68
- printf 'PLUGIN-SKILLS %s bytes=%s\n' "$plugin" "${bytes:-0}"
69
- done
57
+ wr-retrospective-list-plugin-attribution "${CLAUDE_PROJECT_DIR:-.}"
70
58
  ```
71
59
 
72
- Each plugin's `hooks` and `skills` row carries a concrete byte count + `find / wc -c` measurement-method citation. The aggregate cheap-layer `hooks` row equals the sum of all `PLUGIN-HOOKS` rows (sanity-check the report).
60
+ The `wr-retrospective-list-plugin-attribution` command is a `$PATH`-resolved shim shipped in `packages/retrospective/bin/` that dispatches the canonical `packages/retrospective/scripts/list-plugin-attribution.sh` body. ADR-049 never invoke the canonical script via repo-relative path; the path does not resolve in adopter trees. Equivalent contract to ADR-049's `wr-retrospective-measure-context-budget` shim.
61
+
62
+ Output rows (one per plugin, terse machine-readable per ADR-038 ≤150 bytes):
63
+
64
+ ```
65
+ PLUGIN-HOOKS <plugin> bytes=<N>
66
+ PLUGIN-SKILLS <plugin> bytes=<N>
67
+ PLUGIN-ATTRIBUTION not-measured reason=<reason>
68
+ ```
69
+
70
+ Resolution order (handled by the helper, transparent to this skill):
71
+
72
+ 1. **Source-tree mode** — when invoked from a windyroad source-repo session, walks `packages/<plugin>/{hooks,skills}` directly.
73
+ 2. **Cache-fallback mode** — when invoked from an adopter session (no `packages/` under `${CLAUDE_PROJECT_DIR}`), the helper sniffs `$PATH` for plugin-cache `bin/` entries (`*/cache/<owner>/<plugin>/<version>/bin`) and back-walks each plugin's root for hooks + skills byte counts.
74
+ 3. **Neither resolves** — emits a `PLUGIN-ATTRIBUTION not-measured reason=no-plugin-source-resolvable` sentinel per ADR-026. Treat as ungrounded; do NOT fabricate per-plugin numbers when this row appears.
75
+
76
+ Per-row contract: each `PLUGIN-HOOKS` / `PLUGIN-SKILLS` row carries a concrete byte count from the helper's `find ... -name '*.sh' / SKILL.md` + `wc -c` measurement chain. The aggregate cheap-layer `hooks` row equals the sum of all `PLUGIN-HOOKS` rows (sanity-check the report); `skills` row equals the sum of all `PLUGIN-SKILLS` rows.
77
+
78
+ P153 / ADR-049 — do NOT re-introduce repo-relative `packages/*/hooks` (or `skills` / `scripts` / `bin`) directory-enumeration glob loops in SKILL.md prose; route every plugin walk through `wr-retrospective-list-plugin-attribution` (or an equivalent bin-shimmed helper). The grep-as-lint at `packages/shared/test/no-repo-relative-script-paths-in-skills.bats` fails CI on regression.
73
79
 
74
80
  ### 3. Per-turn attribution (when session log is available)
75
81