first-tree-staging 0.5.4-staging.294.1 → 0.5.4-staging.296.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "first-tree-staging",
3
- "version": "0.5.4-staging.294.1",
3
+ "version": "0.5.4-staging.296.1",
4
4
  "type": "module",
5
5
  "description": "First Tree — unified CLI for Context Tree onboarding, agent management, and team messaging. (Source-tree dev build; CI rewrites `name` and `bin` for prod / staging publishes — see docs/local-dev-isolation.md.)",
6
6
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: first-tree-context
3
- version: 0.8.2
3
+ version: 0.8.4
4
4
  cliCompat:
5
5
  first-tree: ">=0.5.0 <0.6.0"
6
6
  description: Context Tree operating guide. Covers what a Context Tree is, the source-system boundary, how to read the tree before acting, and how to write tree updates from a specific source (PR / doc / note). Load before any task that reads or writes context — including when the user pastes a PR / doc / note and says "reflect this in the tree", "update the tree from this", or "write this decision to the tree".
@@ -194,34 +194,46 @@ goes in frontmatter:
194
194
  may have, are where prior states live). The Source-System
195
195
  Boundary table above is the canonical guide for which "whats"
196
196
  belong.
197
- - **Why** — the path the design took to its final state: the
198
- concerns weighed, the alternatives considered, the
199
- course-corrections made and what triggered each one. The final
200
- decision is the *What*; the path to it is the *Why*. **A node
201
- without a Why is a fact, not a decision record.** Why-content is
202
- the most commonly lost axis — protect it deliberately during the
203
- rush to land a PR or close a meeting.
204
- - **Why lives in the design phase, not the final state.** The
205
- concerns, course-corrections, and dropped alternatives are
206
- generated *during* design — the moment somebody flags "won't
207
- this break X?", the moment a first proposal is corrected, the
208
- moment an option is dropped because it conflicts with another
209
- domain. By the time the PR lands the design is settled, but
210
- the reasoning that settled it lives only in chat / review
211
- threads / meeting notes and decays fast.
197
+ - **Why** — the surviving rationale behind the *What*: the
198
+ constraints that won, the reasons each alternative lost,
199
+ recorded as present-tense constraint and reasoning. The design
200
+ phase is where this rationale is **produced** (concerns weighed,
201
+ alternatives considered, course-corrections introduced), but the
202
+ node records the **outcome** of that process — not its
203
+ chronology (Hard Rule 8). The final decision is the *What*; its
204
+ surviving rationale is the *Why*. **A node without a Why is a
205
+ fact, not a decision record.** Why-content is the most commonly
206
+ lost axis — protect it deliberately during the rush to land a PR
207
+ or close a meeting.
208
+ - **Why is generated in the design phase, captured in the
209
+ node.** The concerns, course-corrections, and dropped
210
+ alternatives that shape the design are generated *during*
211
+ design — the moment somebody flags "won't this break X?", the
212
+ moment a first proposal is corrected, the moment an option is
213
+ dropped because it conflicts with another domain. By the time
214
+ the PR lands the design is settled, but the reasoning that
215
+ settled it lives only in chat / review threads / meeting notes
216
+ and decays fast. The node captures the *outcome* of those
217
+ moments (the surviving constraints and reasons), not the
218
+ moments themselves.
212
219
  - **Course-corrections are the canonical Why.** Each correction
213
220
  encodes two things at once: an alternative that was *actually
214
221
  pursued* (not abstractly considered), and the constraint or
215
222
  insight that ruled it out. Both are exactly the content that
216
- keeps the next agent from re-litigating the same path. In a
217
- copilot team most corrections come from human↔agent
218
- back-and-forth — capture them while you still have them.
223
+ keeps the next agent from re-litigating the same path.
224
+ Corrections surface in design-phase back-and-forth — chat
225
+ threads, review comments, design meetings — and decay fast
226
+ once the PR lands. Capture them while you still have them, but
227
+ apply the **Double Test** (above) before pinning: not every
228
+ review nit is a course-correction, and the surviving
229
+ constraint still has to be durable across refactors.
219
230
  - **Translate corrections into present-tense rationale, not
220
- narration.** "The agent first proposed a global cache; the
221
- human said no" is a timeline (Hard Rule 8 forbids it). "Cache
222
- is per-tenant because multi-tenancy isolation is a hard
223
- constraint" is the surviving Why. Keep the *constraint* the
224
- correction introduced; drop the *story* of how it happened.
231
+ narration (i.e. timeline).** "The agent first proposed a
232
+ global cache; the human said no" is a timeline (Hard Rule 8
233
+ forbids it). "Cache is per-tenant because multi-tenancy
234
+ isolation is a hard constraint" is the surviving Why. Keep
235
+ the *constraint* the correction introduced; drop the *story*
236
+ of how it happened.
225
237
  - Other rich sources: meeting discussions where a decision was
226
238
  reached; PR review threads that changed the design.
227
239
  - Self-check: "Six months from now, if a reader reads only the
@@ -344,6 +356,13 @@ meta-narration in this skill — they are not a body section template;
344
356
  no `## Trigger` / `## Source` heading goes into the actual node (see
345
357
  Hard Rule 9).
346
358
 
359
+ Some examples split `Belongs:` into `Belongs (What):` and `Belongs
360
+ (Why):` to make the Content Model distinction concrete; others
361
+ keep a single `Belongs:` line where the distinction is not
362
+ load-bearing. Both forms describe the same underlying boundary —
363
+ what survives in the node vs what stays in the source repo. The
364
+ split is teaching emphasis, not a separate convention.
365
+
347
366
  **Trigger: PR adding a new caching layer.**
348
367
  Belongs: "Service X owns the cache; other services read through Service
349
368
  X's SDK"; "we chose Redis over Memcached because of pubsub support".
@@ -1 +1 @@
1
- 0.8.2
1
+ 0.8.4