@basou/core 0.46.0 → 0.47.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/dist/index.d.ts CHANGED
@@ -6767,8 +6767,18 @@ declare function renderReport(input: ReportRendererInput): Promise<ReportRendere
6767
6767
  * record is bound to a unit by the repo paths it names and surfaced as a label,
6768
6768
  * but it NEVER changes that unit's verdict — a gap stays a gap, a candidate
6769
6769
  * stays a candidate — otherwise an empty record would become a way to make the
6770
- * gap count go down, the same weakness the Stop-gate has. It re-labels; it does
6771
- * not clear.
6770
+ * gap count go down. It re-labels; it does not clear.
6771
+ *
6772
+ * The Stop review gate takes such a self-report at face value and goes quiet on
6773
+ * it. That is a settled difference in contract, not a lapse there and rigour
6774
+ * here. This surfacer answers a question about the RECORD — across everything
6775
+ * captured, what still looks unreviewed — so a claim it cannot corroborate must
6776
+ * not move the answer. The gate answers a question about ONE turn, while that
6777
+ * turn is ending, with only that turn's transcript to read: there the
6778
+ * self-report is the only evidence in existence. Declining it would not hang a
6779
+ * session — the loop guard keeps a continuation turn silent — but it would put
6780
+ * a reminder on every shipping turn regardless of what that session did, which
6781
+ * is a reminder a person stops reading.
6772
6782
  *
6773
6783
  * It reads only captured provenance and writes nothing.
6774
6784
  */
package/dist/index.js CHANGED
@@ -300,7 +300,7 @@ function renderNudge(counts) {
300
300
  return [
301
301
  `This session ${summary} but recorded no decisions or next step.`,
302
302
  "If meaningful decisions were made (the chosen approach, rejected alternatives, and why) or there is a clear next step, capture them now so the next session can resume correctly:",
303
- ' - Decisions: run `basou decision capture` and pipe a JSON array (one object per decision; "title" required, plus optional rationale/alternatives/rejected_reason/linked_files; set "kind":"track" for an unfinished strategic direction).',
303
+ ' - Decisions: run `basou decision capture` and pipe a JSON array (one object per decision; "title" and "kind" required, plus optional rationale/alternatives/rejected_reason/linked_files). "kind" names the vessel: "track" for an unfinished strategic direction that must resurface until closed, "decision" for a settled point-in-time call.',
304
304
  ' - Next step: run `basou note "<what you would do next>"`.',
305
305
  "If nothing is worth capturing, just stop \u2014 do not invent decisions."
306
306
  ].join("\n");
@@ -4643,7 +4643,7 @@ var EN = {
4643
4643
  noteStaleNote: (age) => `Note: work continued after this was recorded (latest activity ${age}), so this starting point may be stale.`,
4644
4644
  fallbackStaleDirection: "- (no planned tasks or recorded next step \u2014 the latest activity postdates the latest decision; ask the user for the continuation point)",
4645
4645
  fallbackStaleReferenceLabel: "Reference (possibly stale \u2014 not the current direction)",
4646
- trackNudge: 'Once the next essential direction is settled, record it as a track with `basou decision capture` (`"kind":"track"`) / `basou decision record --track` \u2014 it stays surfaced here every session until closed.',
4646
+ trackNudge: 'Once the next essential direction is settled, record it as a track: `basou decision capture` with `"kind":"track"` (the batch form, piped as JSON), or `basou decision record --track` for a single one typed by hand \u2014 it stays surfaced here every session until closed.',
4647
4647
  federatedFreshnessNote: "Note: the freshness verdict covers only this machine's local store. Missed work on other hosts cannot be assessed here (run `basou refresh` on each host to sync).",
4648
4648
  bannerUnverifiable: (n) => `> \u26A0\uFE0F **Re-import needed** \u2014 ${n} session(s) changed in the native logs but cannot be imported by a plain refresh. Re-import with \`basou refresh --force\` (details under "Is this current" at the bottom).`,
4649
4649
  bannerStale: (parts) => `> \u26A0\uFE0F **Stale (uncaptured: ${parts})** \u2014 run \`basou refresh\` before starting work (details under "Is this current" at the bottom).`,
@@ -4746,7 +4746,7 @@ var JA = {
4746
4746
  noteStaleNote: (age) => `\u6CE8: \u3053\u306E\u8D77\u70B9\u306E\u8A18\u9332\u5F8C (\u6700\u7D42\u6D3B\u52D5 ${age}) \u3082\u4F5C\u696D\u304C\u7D9A\u3044\u3066\u3044\u307E\u3059\u3002\u518D\u958B\u70B9\u304C\u53E4\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002`,
4747
4747
  fallbackStaleDirection: "- (no planned tasks or recorded next step \u2014 \u6700\u7D42\u6D3B\u52D5\u306F\u76F4\u8FD1\u306E\u5224\u65AD\u3088\u308A\u5F8C\u3067\u3059\u3002\u7D99\u7D9A\u70B9\u3092\u30E6\u30FC\u30B6\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044)",
4748
4748
  fallbackStaleReferenceLabel: "\u53C2\u8003 (\u53E4\u3044\u53EF\u80FD\u6027\u30FB\u65B9\u91DD\u3067\u306F\u306A\u3044)",
4749
- trackNudge: '\u6B21\u306B\u4F5C\u308B\u3079\u304D\u672C\u8CEA\u7684\u306A\u65B9\u5411\u6027\u304C\u5B9A\u307E\u3063\u305F\u3089 `basou decision capture` (`"kind":"track"`) / `basou decision record --track` \u3067 track \u5316\u3059\u308B\u3068\u3001close \u307E\u3067\u6BCE session \u3053\u3053\u306B\u7D99\u7D9A\u8868\u793A\u3055\u308C\u307E\u3059\u3002',
4749
+ trackNudge: '\u6B21\u306B\u4F5C\u308B\u3079\u304D\u672C\u8CEA\u7684\u306A\u65B9\u5411\u6027\u304C\u5B9A\u307E\u3063\u305F\u3089 track \u5316\u3059\u308B\u3068\u3001close \u307E\u3067\u6BCE session \u3053\u3053\u306B\u7D99\u7D9A\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u307E\u3068\u3081\u3066 JSON \u3067\u6E21\u3059\u306A\u3089 `basou decision capture` \u306B `"kind":"track"` \u3092\u3001\u624B\u3067 1 \u4EF6\u66F8\u304F\u306A\u3089 `basou decision record --track` \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002',
4750
4750
  federatedFreshnessNote: "\u6CE8: \u9BAE\u5EA6\u5224\u5B9A\u306F\u3053\u306E\u30DE\u30B7\u30F3\u306E\u30ED\u30FC\u30AB\u30EB\u30B9\u30C8\u30A2\u306E\u307F\u304C\u5BFE\u8C61\u3067\u3059\u3002\u4ED6\u30DB\u30B9\u30C8\u306E\u53D6\u308A\u3053\u307C\u3057\u306F\u5224\u5B9A\u3067\u304D\u307E\u305B\u3093(\u5404\u30DB\u30B9\u30C8\u3067 basou refresh \u3092\u5B9F\u884C\u3057\u540C\u671F\u3057\u3066\u304F\u3060\u3055\u3044)\u3002",
4751
4751
  bannerUnverifiable: (n) => `> \u26A0\uFE0F **\u518D\u53D6\u308A\u8FBC\u307F\u304C\u5FC5\u8981** \u2014 native \u30ED\u30B0\u304C\u5909\u5316\u3057\u305F\u304C\u901A\u5E38\u306E refresh \u3067\u306F\u53D6\u308A\u8FBC\u3081\u306A\u3044\u30BB\u30C3\u30B7\u30E7\u30F3\u304C ${n} \u4EF6\u3042\u308A\u307E\u3059\u3002\`basou refresh --force\` \u3067\u518D\u53D6\u308A\u8FBC\u307F\u3057\u3066\u304F\u3060\u3055\u3044(\u8A73\u7D30\u306F\u672B\u5C3E\u300C\u3053\u308C\u306F\u6700\u65B0\u304B\u300D)\u3002`,
4752
4752
  bannerStale: (parts) => `> \u26A0\uFE0F **\u53E4\u3044\u3067\u3059\uFF08\u672A\u53D6\u308A\u8FBC\u307F ${parts}\uFF09** \u2014 \u7740\u624B\u524D\u306B\u5FC5\u305A \`basou refresh\` \u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044(\u8A73\u7D30\u306F\u672B\u5C3E\u300C\u3053\u308C\u306F\u6700\u65B0\u304B\u300D)\u3002`,
@@ -6070,7 +6070,7 @@ function parseBuildStamp(raw) {
6070
6070
  }
6071
6071
  }
6072
6072
  var BASOU_CORE_BUILD = parseBuildStamp(
6073
- true ? '{"version":"0.46.0","commit":"dbc9c57","committedAt":"2026-09-19T15:43:35+09:00"}' : void 0
6073
+ true ? '{"version":"0.47.0","commit":"831e0cb","committedAt":"2026-09-20T22:28:13+09:00"}' : void 0
6074
6074
  );
6075
6075
 
6076
6076
  // src/lib/duration.ts