@yagni-app/code-staging 1.1.4-staging.1424.1 → 1.1.4-staging.1425.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.
@@ -19,7 +19,12 @@ export declare const RECORD_NEVER: string;
19
19
  * How the decision text itself must read. The ledger shows the decision as
20
20
  * the headline and the question beneath it, so an answer-shaped decision
21
21
  * ("No. Surface the decline.") reads as a fragment on every surface that
22
- * renders it.
22
+ * renders it, and a decision that carries its own reasoning reads as a
23
+ * paragraph in headline type. The ruling is the decision; the constraints,
24
+ * specifics, and reasoning belong in the rationale, where retrieval indexes
25
+ * them just the same (the embedding document is question + decision +
26
+ * rationale) and contested detection, which compares decision against
27
+ * decision, is not muddied by shared context words.
23
28
  */
24
29
  export declare const DECISION_STATEMENT: string;
25
30
  /**
@@ -27,5 +32,5 @@ export declare const DECISION_STATEMENT: string;
27
32
  * never, and how the decision text must read, so every surface that records
28
33
  * a decision produces one the headline-first ledger can render whole.
29
34
  */
30
- export declare const RECORD_DECISION_RUBRIC = "Record a decision only when it is consequential: a product-intent, architecture, or team-convention call that another engineer would need to know and that is not already written down, especially one a human just settled by answering a question or correcting you. Never record taste, styling, naming of a local variable, formatting, a workaround, a restatement of the code change, or anything the user is still experimenting with; when in doubt, do not record it. Write the decision as a standalone statement that reads without the question: name the subject and what was chosen (\"Checkout surfaces a declined card to the customer instead of retrying it\"), never a bare yes or no or an answer that only makes sense under the question.";
35
+ export declare const RECORD_DECISION_RUBRIC = "Record a decision only when it is consequential: a product-intent, architecture, or team-convention call that another engineer would need to know and that is not already written down, especially one a human just settled by answering a question or correcting you. Never record taste, styling, naming of a local variable, formatting, a workaround, a restatement of the code change, or anything the user is still experimenting with; when in doubt, do not record it. Write the decision as a standalone statement that reads without the question: name the subject and what was chosen (\"Checkout surfaces a declined card to the customer instead of retrying it\"), never a bare yes or no or an answer that only makes sense under the question. Keep the decision to the ruling itself, one or two sentences; put the constraints, specifics, and reasoning behind it in the rationale, not the decision.";
31
36
  //# sourceMappingURL=decisionRubric.d.ts.map
@@ -25,12 +25,18 @@ export const RECORD_NEVER = "Never record taste, styling, naming of a local vari
25
25
  * How the decision text itself must read. The ledger shows the decision as
26
26
  * the headline and the question beneath it, so an answer-shaped decision
27
27
  * ("No. Surface the decline.") reads as a fragment on every surface that
28
- * renders it.
28
+ * renders it, and a decision that carries its own reasoning reads as a
29
+ * paragraph in headline type. The ruling is the decision; the constraints,
30
+ * specifics, and reasoning belong in the rationale, where retrieval indexes
31
+ * them just the same (the embedding document is question + decision +
32
+ * rationale) and contested detection, which compares decision against
33
+ * decision, is not muddied by shared context words.
29
34
  */
30
35
  export const DECISION_STATEMENT = "Write the decision as a standalone statement that reads without the question: name " +
31
36
  "the subject and what was chosen (\"Checkout surfaces a declined card to the customer " +
32
37
  "instead of retrying it\"), never a bare yes or no or an answer that only makes sense " +
33
- "under the question.";
38
+ "under the question. Keep the decision to the ruling itself, one or two sentences; put " +
39
+ "the constraints, specifics, and reasoning behind it in the rationale, not the decision.";
34
40
  /**
35
41
  * The rubric as one paragraph for persona bodies and task templates: when,
36
42
  * never, and how the decision text must read, so every surface that records
@@ -33,7 +33,11 @@ const parameters = Type.Object({
33
33
  question: Type.String({ description: "The question that was decided, as another engineer would ask it." }),
34
34
  decision: Type.String({ description: `The direction taken. ${DECISION_STATEMENT}` }),
35
35
  kind: Type.Union([Type.Literal("product"), Type.Literal("architecture"), Type.Literal("convention")], { description: `What sort of call this is: ${DECISION_KIND_DESCRIPTION}.` }),
36
- rationale: Type.String({ description: "Why: the durable reasoning a teammate would want six months later." }),
36
+ rationale: Type.String({
37
+ description: "Why: the durable reasoning a teammate would want six months later, plus the constraints and " +
38
+ "specifics that do not fit the one- or two-sentence decision. This is indexed for retrieval " +
39
+ "alongside the decision, so nothing is lost by putting detail here.",
40
+ }),
37
41
  repo: Type.Optional(Type.String()),
38
42
  workItemId: Type.Optional(Type.String()),
39
43
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yagni-app/code-staging",
3
- "version": "1.1.4-staging.1424.1",
3
+ "version": "1.1.4-staging.1425.1",
4
4
  "description": "YAGNI Code: a terminal coding agent that already knows your company. One YAGNI login routes the model and grounds the agent in your team's context.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "YAGNI, Inc. <jack@yagni.app> (https://yagni.app)",
@@ -58,5 +58,5 @@
58
58
  "turndown": "^7.2.4",
59
59
  "typebox": "^1.3.15"
60
60
  },
61
- "yagniSourceSha": "bd7d06bc8fc95da1e22d6b06146cf7a0ea20ad78"
61
+ "yagniSourceSha": "e0166fd5a8fd711d788e98ec1d179c7d05100a78"
62
62
  }