slopless 0.2.10 → 0.2.12

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.
Files changed (73) hide show
  1. package/README.md +9 -9
  2. package/dist/registries/academic-slop.js +4 -0
  3. package/dist/registries/academic-slop.js.map +1 -1
  4. package/dist/registries/narrative-slop.js +4 -0
  5. package/dist/registries/narrative-slop.js.map +1 -1
  6. package/dist/rules/academic-slop/academic-boilerplate.js +17 -0
  7. package/dist/rules/academic-slop/academic-boilerplate.js.map +1 -0
  8. package/dist/rules/academic-slop/academic-formula-frames.js +17 -0
  9. package/dist/rules/academic-slop/academic-formula-frames.js.map +1 -0
  10. package/dist/rules/academic-slop/data/academic-boilerplate.json +22 -0
  11. package/dist/rules/academic-slop/data/academic-formula-frames.json +252 -0
  12. package/dist/rules/narrative-slop/emotion-telling.js +58 -0
  13. package/dist/rules/narrative-slop/emotion-telling.js.map +1 -0
  14. package/dist/rules/narrative-slop/empty-beat.js +124 -0
  15. package/dist/rules/narrative-slop/empty-beat.js.map +1 -0
  16. package/dist/rules/narrative-slop/low-information-beat-density.js +24 -1
  17. package/dist/rules/narrative-slop/low-information-beat-density.js.map +1 -1
  18. package/dist/rules/narrative-slop/perception-verb-density.js +4 -0
  19. package/dist/rules/narrative-slop/perception-verb-density.js.map +1 -1
  20. package/dist/rules/orthography/colon-dramatic.js +38 -1
  21. package/dist/rules/orthography/colon-dramatic.js.map +1 -1
  22. package/dist/rules/phrases/corporate-speak.js +30 -1
  23. package/dist/rules/phrases/corporate-speak.js.map +1 -1
  24. package/dist/rules/phrases/data/corporate-abstraction-patterns.json +60 -0
  25. package/dist/rules/phrases/data/corporate-speak.json +20 -0
  26. package/dist/rules/phrases/data/prohibited-phrases.json +6 -1
  27. package/dist/rules/semantic-thinness/patterns/abstract-agency-personification.json +145 -0
  28. package/dist/rules/semantic-thinness/patterns/body-knows.json +17 -2
  29. package/dist/rules/semantic-thinness/patterns/deictic-summary.json +10 -2
  30. package/dist/rules/semantic-thinness/patterns/emotion-as-substance.json +17 -1
  31. package/dist/rules/semantic-thinness/patterns/empty-scene-state.json +18 -1
  32. package/dist/rules/semantic-thinness/patterns/recursive-meaning-frame.json +79 -0
  33. package/dist/rules/semantic-thinness/private/concrete-guards.js +9 -0
  34. package/dist/rules/semantic-thinness/private/concrete-guards.js.map +1 -1
  35. package/dist/rules/semantic-thinness/private/pattern-data-c.js +2 -0
  36. package/dist/rules/semantic-thinness/private/pattern-data-c.js.map +1 -1
  37. package/dist/rules/semantic-thinness/private/pattern-data-e.js +5 -0
  38. package/dist/rules/semantic-thinness/private/pattern-data-e.js.map +1 -0
  39. package/dist/rules/semantic-thinness/private/pattern-data.js +3 -1
  40. package/dist/rules/semantic-thinness/private/pattern-data.js.map +1 -1
  41. package/dist/rules/semantic-thinness/private/pattern-matcher.js +7 -1
  42. package/dist/rules/semantic-thinness/private/pattern-matcher.js.map +1 -1
  43. package/dist/rules/syntactic-patterns/contrast/contrastive-aphorism.js +2 -151
  44. package/dist/rules/syntactic-patterns/contrast/contrastive-aphorism.js.map +1 -1
  45. package/dist/rules/syntactic-patterns/contrast/private/inline-contrast-connector.js +16 -0
  46. package/dist/rules/syntactic-patterns/contrast/private/inline-contrast-connector.js.map +1 -0
  47. package/dist/rules/syntactic-patterns/contrast/private/inline-not-because-reframe.js +22 -0
  48. package/dist/rules/syntactic-patterns/contrast/private/inline-not-because-reframe.js.map +1 -0
  49. package/dist/rules/syntactic-patterns/contrast/private/inline-short-negation.js +62 -0
  50. package/dist/rules/syntactic-patterns/contrast/private/inline-short-negation.js.map +1 -0
  51. package/dist/rules/syntactic-patterns/contrast/private/negation-context-gates.js +72 -0
  52. package/dist/rules/syntactic-patterns/contrast/private/negation-context-gates.js.map +1 -0
  53. package/dist/rules/syntactic-patterns/contrast/private/negation-reframe-matcher.js +20 -17
  54. package/dist/rules/syntactic-patterns/contrast/private/negation-reframe-matcher.js.map +1 -1
  55. package/dist/rules/syntactic-patterns/contrast/private/same-sentence-contrast.js +47 -16
  56. package/dist/rules/syntactic-patterns/contrast/private/same-sentence-contrast.js.map +1 -1
  57. package/dist/rules/syntactic-patterns/contrast/private/single-sentence-aphorism.js +178 -0
  58. package/dist/rules/syntactic-patterns/contrast/private/single-sentence-aphorism.js.map +1 -0
  59. package/dist/rules/syntactic-patterns/lead-ins/generic-signposting.js +50 -0
  60. package/dist/rules/syntactic-patterns/lead-ins/generic-signposting.js.map +1 -1
  61. package/dist/rules/words/llm-vocabulary-density.js +41 -1
  62. package/dist/rules/words/llm-vocabulary-density.js.map +1 -1
  63. package/dist/rules/words/llm-vocabulary.js +5 -7
  64. package/dist/rules/words/llm-vocabulary.js.map +1 -1
  65. package/dist/rules/words/private/vocabulary-context.js +125 -0
  66. package/dist/rules/words/private/vocabulary-context.js.map +1 -0
  67. package/dist/rules/words/prohibited-words.js +2 -2
  68. package/dist/rules/words/prohibited-words.js.map +1 -1
  69. package/dist/shared/matchers/concrete-evidence.js +4 -0
  70. package/dist/shared/matchers/concrete-evidence.js.map +1 -1
  71. package/dist/shared/text/traverse.js +4 -1
  72. package/dist/shared/text/traverse.js.map +1 -1
  73. package/package.json +21 -17
@@ -1 +1 @@
1
- {"version":3,"file":"low-information-beat-density.js","sourceRoot":"","sources":["../../../src/rules/narrative-slop/low-information-beat-density.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"low-information-beat-density.js","sourceRoot":"","sources":["../../../src/rules/narrative-slop/low-information-beat-density.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,10 @@ import { defineTextlintRule } from "../../adapters/textlint/rule.js";
2
2
  import { paragraphUnits } from "../../adapters/textlint/units.js";
3
3
  import { wordTokens } from "../../shared/text/tokens.js";
4
4
  const PERCEPTION_VERBS = new Set([
5
+ "focus",
6
+ "focuses",
7
+ "focused",
8
+ "focusing",
5
9
  "look",
6
10
  "looks",
7
11
  "looked",
@@ -1 +1 @@
1
- {"version":3,"file":"perception-verb-density.js","sourceRoot":"","sources":["../../../src/rules/narrative-slop/perception-verb-density.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"perception-verb-density.js","sourceRoot":"","sources":["../../../src/rules/narrative-slop/perception-verb-density.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,18 @@ import { countWhitespaceSeparatedWords } from "../../shared/text/whitespace.js";
2
2
  import { oneToOneRule } from "../private/textlint-rule-builders.js";
3
3
  const MAX_DRAMATIC_AFTER_COLON_WORDS = 5;
4
4
  const CONTENT_REFERENCE_MARKER = ":contentReference[";
5
+ const DRAMATIC_BEFORE_COLON_MARKERS = [
6
+ "hit me",
7
+ "one thing was clear",
8
+ "saw it",
9
+ "the answer is simple",
10
+ "the lesson is clear",
11
+ "the point is clear",
12
+ "the problem is simple",
13
+ "the takeaway is clear",
14
+ "the truth is",
15
+ "the verdict was simple"
16
+ ];
5
17
  function firstNonWhitespaceIndex(text) {
6
18
  for (let index = 0; index < text.length; index += 1) {
7
19
  if (text[index]?.trim() !== "") {
@@ -26,6 +38,29 @@ function containsComma(text) {
26
38
  }
27
39
  return false;
28
40
  }
41
+ function isClockColon(text, colonIndex) {
42
+ const previous = text[colonIndex - 1];
43
+ const next = text[colonIndex + 1];
44
+ return (previous !== undefined &&
45
+ next !== undefined &&
46
+ previous >= "0" &&
47
+ previous <= "9" &&
48
+ next >= "0" &&
49
+ next <= "9");
50
+ }
51
+ function normalizedBeforeColon(text, colonIndex) {
52
+ let normalized = "";
53
+ for (const character of text.slice(0, colonIndex).toLocaleLowerCase("en")) {
54
+ const isDigit = character >= "0" && character <= "9";
55
+ const isLowercaseAscii = character >= "a" && character <= "z";
56
+ normalized += isDigit || isLowercaseAscii ? character : " ";
57
+ }
58
+ return normalized.split(" ").filter(Boolean).join(" ");
59
+ }
60
+ function isDramaticColonContext(text, colonIndex) {
61
+ const before = normalizedBeforeColon(text, colonIndex);
62
+ return DRAMATIC_BEFORE_COLON_MARKERS.some((marker) => before.endsWith(marker));
63
+ }
29
64
  function isMeridiemInnerPeriod(text, index) {
30
65
  const previous = text[index - 1]?.toLocaleLowerCase();
31
66
  const next = text[index + 1]?.toLocaleLowerCase();
@@ -53,7 +88,9 @@ function sentenceEndAfter(text, start) {
53
88
  return text.length;
54
89
  }
55
90
  function dramaticColonAt(text, colonIndex) {
56
- if (isArtifactColon(text, colonIndex)) {
91
+ if (isArtifactColon(text, colonIndex) ||
92
+ isClockColon(text, colonIndex) ||
93
+ !isDramaticColonContext(text, colonIndex)) {
57
94
  return undefined;
58
95
  }
59
96
  const end = sentenceEndAfter(text, colonIndex + 1);
@@ -1 +1 @@
1
- {"version":3,"file":"colon-dramatic.js","sourceRoot":"","sources":["../../../src/rules/orthography/colon-dramatic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"colon-dramatic.js","sourceRoot":"","sources":["../../../src/rules/orthography/colon-dramatic.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,39 @@
1
1
  import corporateAbstractionPatterns from "./data/corporate-abstraction-patterns.json" with { type: "json" };
2
2
  import corporateSpeak from "./data/corporate-speak.json" with { type: "json" };
3
3
  import { findUnquotedPhraseMatches, findUnquotedTokenTemplateMatches } from "../../shared/matchers/phrases.js";
4
+ import { wordTokens } from "../../shared/text/tokens.js";
4
5
  import { oneToOneRule } from "../private/textlint-rule-builders.js";
6
+ const LITERAL_DOUBLE_CLICK_CONTEXT = new Set([
7
+ "button",
8
+ "desktop",
9
+ "file",
10
+ "folder",
11
+ "icon",
12
+ "installer",
13
+ "mouse",
14
+ "screen",
15
+ "shortcut",
16
+ "window"
17
+ ]);
18
+ const LEGAL_ENTITY_CONTEXT = new Set([
19
+ "company",
20
+ "entity",
21
+ "legal",
22
+ "lists",
23
+ "partners",
24
+ "registration"
25
+ ]);
26
+ function allowedCorporatePhraseContext(text, match) {
27
+ if (match.phrase !== "double-click on") {
28
+ const words = wordTokens(text).map((token) => token.normalized);
29
+ return (match.phrase === "next-generation growth" &&
30
+ words.some((word) => LEGAL_ENTITY_CONTEXT.has(word)));
31
+ }
32
+ return wordTokens(text).some((token) => LITERAL_DOUBLE_CLICK_CONTEXT.has(token.normalized));
33
+ }
5
34
  const rule = oneToOneRule({
6
35
  detect: (unit) => [
7
- ...findUnquotedPhraseMatches(unit.text, corporateSpeak),
36
+ ...findUnquotedPhraseMatches(unit.text, corporateSpeak).filter((match) => !allowedCorporatePhraseContext(unit.text, match)),
8
37
  ...findUnquotedTokenTemplateMatches(unit.text, corporateAbstractionPatterns)
9
38
  ].map((match) => ({
10
39
  evidence: match.text,
@@ -1 +1 @@
1
- {"version":3,"file":"corporate-speak.js","sourceRoot":"","sources":["../../../src/rules/phrases/corporate-speak.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,MAAM,4CAA4C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5G,OAAO,cAAc,MAAM,6BAA6B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/E,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EACjC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,MAAM,IAAI,GAAG,YAAY,CAAC;IACxB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CACf;QACE,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;QACvD,GAAG,gCAAgC,CACjC,IAAI,CAAC,IAAI,EACT,4BAA4B,CAC7B;KACF,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChB,QAAQ,EAAE,KAAK,CAAC,IAAI;QACpB,KAAK,EAAE,KAAK,CAAC,IAAI;QACjB,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE;KAC9C,CAAC,CAAC;IACL,MAAM,EAAE,SAAS;IACjB,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CACxB,kCAAkC,MAAM,CAAC,QAAQ,sCAAsC;IACzF,oBAAoB,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;IAC/C,MAAM,EAAE,yBAAyB;IACjC,QAAQ,EAAE,KAAK;CAChB,CAAC,CAAC;AAEH,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"corporate-speak.js","sourceRoot":"","sources":["../../../src/rules/phrases/corporate-speak.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,MAAM,4CAA4C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5G,OAAO,cAAc,MAAM,6BAA6B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/E,OAAO,EACL,yBAAyB,EAEzB,gCAAgC,EACjC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC;IAC3C,QAAQ;IACR,SAAS;IACT,MAAM;IACN,QAAQ;IACR,MAAM;IACN,WAAW;IACX,OAAO;IACP,QAAQ;IACR,UAAU;IACV,QAAQ;CACT,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,SAAS;IACT,QAAQ;IACR,OAAO;IACP,OAAO;IACP,UAAU;IACV,cAAc;CACf,CAAC,CAAC;AAEH,SAAS,6BAA6B,CACpC,IAAY,EACZ,KAAkB;IAElB,IAAI,KAAK,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChE,OAAO,CACL,KAAK,CAAC,MAAM,KAAK,wBAAwB;YACzC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CACrD,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACrC,4BAA4B,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CACnD,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,GAAG,YAAY,CAAC;IACxB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CACf;QACE,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,CAC5D,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAC5D;QACD,GAAG,gCAAgC,CACjC,IAAI,CAAC,IAAI,EACT,4BAA4B,CAC7B;KACF,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChB,QAAQ,EAAE,KAAK,CAAC,IAAI;QACpB,KAAK,EAAE,KAAK,CAAC,IAAI;QACjB,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE;KAC9C,CAAC,CAAC;IACL,MAAM,EAAE,SAAS;IACjB,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CACxB,kCAAkC,MAAM,CAAC,QAAQ,sCAAsC;IACzF,oBAAoB,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;IAC/C,MAAM,EAAE,yBAAyB;IACjC,QAAQ,EAAE,KAAK;CAChB,CAAC,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -76,5 +76,65 @@
76
76
  "serves as a testament to the power of",
77
77
  "serve as a testament to the power of"
78
78
  ]
79
+ },
80
+ {
81
+ "id": "intersection-abstraction",
82
+ "slots": {
83
+ "abstractDomain": [
84
+ "alignment",
85
+ "belonging",
86
+ "clarity",
87
+ "collaboration",
88
+ "creativity",
89
+ "empathy",
90
+ "execution",
91
+ "growth",
92
+ "impact",
93
+ "innovation",
94
+ "insight",
95
+ "leadership",
96
+ "purpose",
97
+ "resilience",
98
+ "strategy",
99
+ "transformation",
100
+ "trust",
101
+ "value"
102
+ ]
103
+ },
104
+ "templates": [
105
+ "sits at the intersection of {abstractDomain} {abstractDomain} and {abstractDomain}",
106
+ "sit at the intersection of {abstractDomain} {abstractDomain} and {abstractDomain}"
107
+ ]
108
+ },
109
+ {
110
+ "id": "forward-looking-humanity",
111
+ "slots": {
112
+ "summarySubject": ["these signals", "these ideas", "these shifts"],
113
+ "summaryVerb": ["tell", "point toward", "reveal"],
114
+ "biggerStory": [
115
+ "a bigger story",
116
+ "a deeper story",
117
+ "a larger story",
118
+ "a more human way"
119
+ ],
120
+ "softCorporateVerb": [
121
+ "center what makes us human",
122
+ "build what matters",
123
+ "honor the work",
124
+ "lead with purpose"
125
+ ],
126
+ "futureSubject": ["the next chapter", "the work ahead", "the road ahead"],
127
+ "abstractRequirement": [
128
+ "courage empathy and execution",
129
+ "clarity trust and execution",
130
+ "discipline alignment and care",
131
+ "focus courage and resilience"
132
+ ]
133
+ },
134
+ "templates": [
135
+ "taken together {summarySubject} {summaryVerb} {biggerStory}",
136
+ "as we move forward we must continue to {softCorporateVerb}",
137
+ "looking ahead {futureSubject} will require {abstractRequirement}"
138
+ ]
79
139
  }
80
140
  ]
@@ -1,24 +1,44 @@
1
1
  [
2
2
  "all hands on deck",
3
+ "activate the right levers",
3
4
  "apples to apples",
4
5
  "bang for your buck",
6
+ "best-in-class solution",
5
7
  "circle back around",
8
+ "customer-centric innovation",
9
+ "cross-functional stakeholders",
10
+ "double-click on",
6
11
  "drill-down",
7
12
  "elephant in the room",
13
+ "flywheel of trust",
14
+ "future-proof the experience",
8
15
  "get my manager's blessing",
9
16
  "get the ball rolling",
17
+ "game-changer",
10
18
  "hit the ground running",
19
+ "ai-native customer journey",
20
+ "authentic storytelling",
11
21
  "i don't have the bandwidth",
12
22
  "it's on my radar",
13
23
  "let's touch base",
14
24
  "low-hanging fruit",
15
25
  "move the goal post",
26
+ "move the needle",
27
+ "next horizon",
28
+ "next-generation growth",
29
+ "north-star narrative",
16
30
  "no brainer",
17
31
  "on my plate",
32
+ "operationalize learnings",
18
33
  "ping me",
34
+ "socialize the proposal",
35
+ "synergies across the value chain",
19
36
  "synergy",
20
37
  "take this offline",
21
38
  "think outside the box",
22
39
  "thrown under the bus",
40
+ "unlock our full potential",
41
+ "unlock their full potential",
42
+ "unlock your full potential",
23
43
  "win-win"
24
44
  ]
@@ -1,7 +1,12 @@
1
1
  [
2
2
  "in conclusion",
3
3
  "in today's fast-paced world",
4
+ "in a world where",
4
5
  "it's important to note",
5
6
  "let's dive in",
6
- "the key takeaway is"
7
+ "now more than ever",
8
+ "the future belongs to",
9
+ "the key takeaway is",
10
+ "the path forward is clear",
11
+ "turn ambiguity into momentum"
7
12
  ]
@@ -0,0 +1,145 @@
1
+ {
2
+ "id": "abstract-agency-personification",
3
+ "class": "abstract-personification",
4
+ "purpose": "Catch abstract systems, rooms, strategies, and conversations treated as intentional actors instead of naming concrete behavior.",
5
+ "matchMode": "contains",
6
+ "maxTokens": 34,
7
+ "templates": [
8
+ "{abstractAgent} seemed to {cognitionVerb} that {emptyShift}.",
9
+ "{abstractAgent} was {speechVerb} that {emptyInstitutionalClaim}.",
10
+ "{abstractAgent} was asking for {softAnswer}.",
11
+ "{abstractAgent} knew it needed to {identityChange}.",
12
+ "{abstractAgent} wanted to become {selfEvaluation}.",
13
+ "{abstractAgent} had been waiting for {abstractPayoff} to {becomingVerb}.",
14
+ "{abstractContainer} held {humanGroup} until {abstractPayoff} arrived.",
15
+ "{abstractMeaning} lives in what it {availabilityVerb}.",
16
+ "{abstractSilence} in {technicalSurface} said {emptyComparison}.",
17
+ "{roadmapSubject} stopped being a plan and started becoming {abstractStructure}.",
18
+ "{pathSubject} is obvious once {abstractObstacle} is no longer allowed to lead.",
19
+ "{opportunitySubject} is to let {abstractWork} teach us what {abstractWork} is.",
20
+ "{answerSubject} was always closer than {abstractSearch} made it seem.",
21
+ "{abstractAgent} asks for {identityRequest}.",
22
+ "something opens when {softCondition}."
23
+ ],
24
+ "slots": {
25
+ "abstractAgent": [
26
+ "the brand",
27
+ "the conversation",
28
+ "the dashboard",
29
+ "the data",
30
+ "the decision",
31
+ "the energy",
32
+ "the market",
33
+ "the moment",
34
+ "the next level",
35
+ "the product",
36
+ "the room",
37
+ "the roadmap",
38
+ "the strategy",
39
+ "the system",
40
+ "the work"
41
+ ],
42
+ "cognitionVerb": ["know", "realize", "remember", "understand"],
43
+ "emptyShift": [
44
+ "something important was beginning to shift",
45
+ "something needed to change",
46
+ "the next chapter was ready",
47
+ "the work was becoming clearer"
48
+ ],
49
+ "speechVerb": ["asking", "saying", "whispering"],
50
+ "emptyInstitutionalClaim": [
51
+ "the organization had outgrown its old questions",
52
+ "the work was ready for a different answer",
53
+ "the system was ready to become more human"
54
+ ],
55
+ "softAnswer": [
56
+ "a more human answer",
57
+ "a more honest answer",
58
+ "a more intentional answer"
59
+ ],
60
+ "identityChange": [
61
+ "stop performing and start belonging",
62
+ "stop optimizing and start listening",
63
+ "stop scaling and start meaning something"
64
+ ],
65
+ "selfEvaluation": [
66
+ "more honest with itself",
67
+ "more human",
68
+ "more intentional",
69
+ "what it was meant to be"
70
+ ],
71
+ "abstractPayoff": [
72
+ "alignment",
73
+ "clarity",
74
+ "courage",
75
+ "meaning",
76
+ "possibility",
77
+ "purpose"
78
+ ],
79
+ "becomingVerb": [
80
+ "arrive",
81
+ "become what it was always becoming",
82
+ "show up",
83
+ "take shape"
84
+ ],
85
+ "abstractContainer": [
86
+ "the conversation",
87
+ "the moment",
88
+ "the room",
89
+ "the work"
90
+ ],
91
+ "humanGroup": ["everyone", "the group", "the team", "them", "us"],
92
+ "abstractMeaning": [
93
+ "the meaning of the decision",
94
+ "the truth of the moment",
95
+ "the value of the work"
96
+ ],
97
+ "availabilityVerb": ["makes available", "opens", "reveals"],
98
+ "abstractSilence": ["the silence", "the quiet"],
99
+ "technicalSurface": ["the dashboard", "the report", "the room"],
100
+ "emptyComparison": [
101
+ "more than the metrics could say",
102
+ "more than the numbers could explain",
103
+ "what the strategy could not admit"
104
+ ],
105
+ "roadmapSubject": ["the roadmap", "the plan", "the strategy"],
106
+ "abstractStructure": [
107
+ "a permission structure",
108
+ "a listening structure",
109
+ "a possibility structure"
110
+ ],
111
+ "pathSubject": ["the path forward", "the way through"],
112
+ "abstractObstacle": ["the noise", "the old story", "the old question"],
113
+ "opportunitySubject": ["the real opportunity", "the next opportunity"],
114
+ "abstractWork": ["the work", "the process", "the system"],
115
+ "answerSubject": ["the answer", "the solution", "the truth"],
116
+ "abstractSearch": ["the search", "the question", "the work"],
117
+ "identityRequest": [
118
+ "a version of you that can hold more truth",
119
+ "a version of us that can hold more complexity",
120
+ "a version of the team that can hold more ambiguity"
121
+ ],
122
+ "softCondition": [
123
+ "you stop forcing the answer and start honoring the question",
124
+ "the old story stops leading the room",
125
+ "the work stops trying to prove itself"
126
+ ]
127
+ },
128
+ "rejectIf": [
129
+ "sentence names a concrete actor, document, sensor, transcript, trademark, or measurement",
130
+ "sentence states an actual causal mechanism"
131
+ ],
132
+ "positiveExamples": [
133
+ "The room seemed to understand that something important was beginning to shift.",
134
+ "The strategy wanted to become more honest with itself.",
135
+ "The conversation held the team until the next layer of clarity arrived."
136
+ ],
137
+ "negativeExamples": [
138
+ "The room sensor reported that occupancy increased after the doors opened.",
139
+ "The strategy document lists Mara as owner and May 31 as the review date."
140
+ ],
141
+ "notes": [
142
+ "This expands abstract-personification without adding exact literal sentences.",
143
+ "The broad-pattern concrete guard rejects technical and documentary readings."
144
+ ]
145
+ }
@@ -8,7 +8,9 @@
8
8
  "{wisdomSubject} {wisdomVerb}.",
9
9
  "{wisdomSubject} {wisdomVerb} {genericObject}.",
10
10
  "{wisdomSubject} {wisdomVerb} what {genericSubject} {thinPredicate}.",
11
- "{wisdomSubject} {wisdomVerb} long before {mindSubject} {mindVerb}."
11
+ "{wisdomSubject} {wisdomVerb} long before {mindSubject} {mindVerb}.",
12
+ "{wisdomSubject} becomes the map when {mindSubject} is still {abstractMotion}.",
13
+ "{cellsSubject} recognize the difference between {abstractState} and {abstractState}."
12
14
  ],
13
15
  "slots": {
14
16
  "wisdomSubject": [
@@ -52,7 +54,20 @@
52
54
  "is ready to release"
53
55
  ],
54
56
  "mindSubject": ["the mind", "your mind", "her mind", "his mind"],
55
- "mindVerb": ["admits it", "understands", "catches up", "can explain it"]
57
+ "mindVerb": ["admits it", "understands", "catches up", "can explain it"],
58
+ "abstractMotion": [
59
+ "arguing with the road",
60
+ "arguing with the truth",
61
+ "chasing the old answer"
62
+ ],
63
+ "cellsSubject": ["your cells", "the cells"],
64
+ "abstractState": [
65
+ "achievement",
66
+ "alignment",
67
+ "certainty",
68
+ "permission",
69
+ "progress"
70
+ ]
56
71
  },
57
72
  "rejectIf": [
58
73
  "sentence describes a concrete physiological symptom",
@@ -179,7 +179,8 @@
179
179
  "the problem",
180
180
  "the solution",
181
181
  "the report",
182
- "the decision"
182
+ "the decision",
183
+ "everything"
183
184
  ],
184
185
  "abstractVerb": [
185
186
  "lives",
@@ -193,7 +194,14 @@
193
194
  "moves"
194
195
  ],
195
196
  "importanceVerb": ["matters", "works", "changes", "counts", "sticks"],
196
- "startVerb": ["starts", "begins", "happens", "shows up", "takes root"]
197
+ "startVerb": [
198
+ "starts",
199
+ "begins",
200
+ "begins to feel different",
201
+ "happens",
202
+ "shows up",
203
+ "takes root"
204
+ ]
197
205
  },
198
206
  "rejectIf": [
199
207
  "sentence names the concrete lesson, truth, or decision",
@@ -12,6 +12,8 @@
12
12
  "{abstractEmotion} {substanceMotion} over {placeTarget}.",
13
13
  "{abstractEmotion} {substanceMotion} in {bodyContainer}.",
14
14
  "{abstractEmotion} {substanceMotion} through {placeTarget}.",
15
+ "{abstractEmotion} pooled at the edges of {abstractContainer}.",
16
+ "{abstractEmotion} entered {placeTarget} like a {substanceImage}.",
15
17
  "{abstractEmotion} tightened in {bodyContainer}."
16
18
  ],
17
19
  "slots": {
@@ -26,7 +28,9 @@
26
28
  "shame",
27
29
  "tension",
28
30
  "certainty",
29
- "confusion"
31
+ "clarity",
32
+ "confusion",
33
+ "hope"
30
34
  ],
31
35
  "substanceMotion": [
32
36
  "built",
@@ -71,6 +75,7 @@
71
75
  "the group"
72
76
  ],
73
77
  "placeTarget": [
78
+ "the conversation",
74
79
  "the room",
75
80
  "the yard",
76
81
  "the courtyard",
@@ -78,6 +83,17 @@
78
83
  "the group",
79
84
  "the table",
80
85
  "the team"
86
+ ],
87
+ "abstractContainer": [
88
+ "the choice",
89
+ "the conversation",
90
+ "the decision",
91
+ "the moment"
92
+ ],
93
+ "substanceImage": [
94
+ "temperature change",
95
+ "weather change",
96
+ "weight in the room"
81
97
  ]
82
98
  },
83
99
  "rejectIf": [
@@ -8,9 +8,11 @@
8
8
  "{placeSubject} {linkingVerb} {thinState} {weakModifier}.",
9
9
  "{placeSubject} {linkingVerb} {weakBeforeState} {thinState}.",
10
10
  "{placeSubject} went {thinState}.",
11
+ "{groupSubject} went {thinState}.",
11
12
  "{sceneElement} {linkingVerb} {thinState}.",
12
13
  "{sceneElement} {linkingVerb} {thinState} {weakModifier}.",
13
- "{sceneElement} {linkingVerb} {weakBeforeState} {thinState}."
14
+ "{sceneElement} {linkingVerb} {weakBeforeState} {thinState}.",
15
+ "{sceneElement} filled {placeObject}."
14
16
  ],
15
17
  "slots": {
16
18
  "placeSubject": [
@@ -42,6 +44,7 @@
42
44
  "sceneElement": [
43
45
  "the air",
44
46
  "the silence",
47
+ "silence",
45
48
  "the space",
46
49
  "the light",
47
50
  "the morning",
@@ -53,6 +56,20 @@
53
56
  "the atmosphere",
54
57
  "the quiet"
55
58
  ],
59
+ "groupSubject": [
60
+ "everyone",
61
+ "the cubs",
62
+ "the children",
63
+ "the group",
64
+ "the team"
65
+ ],
66
+ "placeObject": [
67
+ "the yard",
68
+ "the room",
69
+ "the courtyard",
70
+ "the hallway",
71
+ "the street"
72
+ ],
56
73
  "linkingVerb": [
57
74
  "was",
58
75
  "were",