slopless 0.2.8 → 0.2.9
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/adapters/textlint/report.js +1 -4
- package/dist/adapters/textlint/report.js.map +1 -1
- package/dist/adapters/textlint/rule.js +1 -1
- package/dist/adapters/textlint/rule.js.map +1 -1
- package/dist/adapters/textlint/units.js +16 -0
- package/dist/adapters/textlint/units.js.map +1 -1
- package/dist/cli.js +17 -6
- package/dist/cli.js.map +1 -1
- package/dist/presets/everything.js +6 -0
- package/dist/presets/everything.js.map +1 -1
- package/dist/registries/narrative-slop.js +2 -0
- package/dist/registries/narrative-slop.js.map +1 -1
- package/dist/registries/syntactic-patterns/authority.js +3 -1
- package/dist/registries/syntactic-patterns/authority.js.map +1 -1
- package/dist/registries/syntactic-patterns/lead-ins.js +2 -0
- package/dist/registries/syntactic-patterns/lead-ins.js.map +1 -1
- package/dist/registries/syntactic-patterns/repetition.js +4 -0
- package/dist/registries/syntactic-patterns/repetition.js.map +1 -1
- package/dist/registries/words.js +2 -0
- package/dist/registries/words.js.map +1 -1
- package/dist/rules/metrics/avg-sentence-length.js +6 -0
- package/dist/rules/metrics/avg-sentence-length.js.map +1 -1
- package/dist/rules/narrative-slop/body-action-density.js +44 -1
- package/dist/rules/narrative-slop/body-action-density.js.map +1 -1
- package/dist/rules/narrative-slop/data/narrative-cliches.json +49 -0
- package/dist/rules/narrative-slop/flat-action-cadence.js +97 -149
- package/dist/rules/narrative-slop/flat-action-cadence.js.map +1 -1
- package/dist/rules/narrative-slop/low-information-beat-density.js +79 -0
- package/dist/rules/narrative-slop/low-information-beat-density.js.map +1 -0
- package/dist/rules/narrative-slop/perception-verb-density.js +25 -1
- package/dist/rules/narrative-slop/perception-verb-density.js.map +1 -1
- package/dist/rules/orthography/em-dashes.js.map +1 -1
- package/dist/rules/orthography/hidden-unicode-controls.js.map +1 -1
- package/dist/rules/orthography/sentence-case.js +4 -2
- package/dist/rules/orthography/sentence-case.js.map +1 -1
- package/dist/rules/private/textlint-rule-builders.js +3 -1
- package/dist/rules/private/textlint-rule-builders.js.map +1 -1
- package/dist/rules/semantic-thinness/patterns/abstract-metaphor-claim.json +91 -2
- package/dist/rules/semantic-thinness/patterns/abstract-personification-line.json +34 -3
- package/dist/rules/semantic-thinness/patterns/body-emotion-shorthand.json +23 -0
- package/dist/rules/semantic-thinness/patterns/deictic-summary.json +118 -6
- package/dist/rules/semantic-thinness/patterns/different-job-summary.json +30 -0
- package/dist/rules/semantic-thinness/patterns/emotion-as-substance.json +14 -4
- package/dist/rules/semantic-thinness/patterns/empty-atmosphere-shift.json +2 -0
- package/dist/rules/semantic-thinness/patterns/empty-scene-state.json +1 -0
- package/dist/rules/semantic-thinness/patterns/empty-scene-transition.json +1 -0
- package/dist/rules/semantic-thinness/patterns/gaze-choreography.json +2 -0
- package/dist/rules/semantic-thinness/patterns/generic-pressure-or-stakes.json +1 -0
- package/dist/rules/semantic-thinness/patterns/generic-realization.json +1 -0
- package/dist/rules/semantic-thinness/patterns/hollow-significance.json +94 -2
- package/dist/rules/semantic-thinness/patterns/missing-conversation-plan.json +44 -0
- package/dist/rules/semantic-thinness/patterns/puffery-evaluative-claim.json +70 -4
- package/dist/rules/semantic-thinness/patterns/real-work-begins.json +3 -1
- package/dist/rules/semantic-thinness/patterns/silence-as-actor.json +4 -0
- package/dist/rules/semantic-thinness/patterns/solution-boring-frame.json +72 -0
- package/dist/rules/semantic-thinness/patterns/truth-answer-moves.json +2 -0
- package/dist/rules/semantic-thinness/patterns/vague-connective-payoff.json +31 -4
- package/dist/rules/semantic-thinness/patterns/vague-summary-cost.json +34 -0
- package/dist/rules/semantic-thinness/patterns/vague-threshold-change.json +40 -4
- package/dist/rules/semantic-thinness/private/concrete-guards.js +119 -0
- package/dist/rules/semantic-thinness/private/concrete-guards.js.map +1 -0
- package/dist/rules/semantic-thinness/private/pattern-data-b.js +6 -0
- package/dist/rules/semantic-thinness/private/pattern-data-b.js.map +1 -1
- package/dist/rules/semantic-thinness/private/pattern-data-d.js +2 -0
- package/dist/rules/semantic-thinness/private/pattern-data-d.js.map +1 -1
- package/dist/rules/semantic-thinness/private/pattern-matcher.js +26 -14
- package/dist/rules/semantic-thinness/private/pattern-matcher.js.map +1 -1
- package/dist/rules/syntactic-patterns/authority/authority-padding.js +75 -7
- package/dist/rules/syntactic-patterns/authority/authority-padding.js.map +1 -1
- package/dist/rules/syntactic-patterns/authority/uncited-authority.js +124 -0
- package/dist/rules/syntactic-patterns/authority/uncited-authority.js.map +1 -0
- package/dist/rules/syntactic-patterns/closers/affirmation-closers.js +11 -1
- package/dist/rules/syntactic-patterns/closers/affirmation-closers.js.map +1 -1
- package/dist/rules/syntactic-patterns/closers/boilerplate-conclusion.js +51 -4
- package/dist/rules/syntactic-patterns/closers/boilerplate-conclusion.js.map +1 -1
- package/dist/rules/syntactic-patterns/closers/summative-closer.js +52 -4
- package/dist/rules/syntactic-patterns/closers/summative-closer.js.map +1 -1
- package/dist/rules/syntactic-patterns/contrast/contrastive-aphorism.js +68 -5
- package/dist/rules/syntactic-patterns/contrast/contrastive-aphorism.js.map +1 -1
- package/dist/rules/syntactic-patterns/contrast/negation-reframe.js +26 -9
- package/dist/rules/syntactic-patterns/contrast/negation-reframe.js.map +1 -1
- package/dist/rules/syntactic-patterns/contrast/private/abstract-pair-gates.js +63 -0
- package/dist/rules/syntactic-patterns/contrast/private/abstract-pair-gates.js.map +1 -0
- package/dist/rules/syntactic-patterns/contrast/private/block-negation-reframe.js +194 -0
- package/dist/rules/syntactic-patterns/contrast/private/block-negation-reframe.js.map +1 -0
- package/dist/rules/syntactic-patterns/contrast/private/meaning-reframe.js +42 -0
- package/dist/rules/syntactic-patterns/contrast/private/meaning-reframe.js.map +1 -0
- package/dist/rules/syntactic-patterns/contrast/private/negation-reframe-matcher.js +34 -41
- package/dist/rules/syntactic-patterns/contrast/private/negation-reframe-matcher.js.map +1 -1
- package/dist/rules/syntactic-patterns/contrast/private/negative-slop-frames.js +6 -0
- package/dist/rules/syntactic-patterns/contrast/private/negative-slop-frames.js.map +1 -1
- package/dist/rules/syntactic-patterns/contrast/private/same-sentence-contrast.js +47 -0
- package/dist/rules/syntactic-patterns/contrast/private/same-sentence-contrast.js.map +1 -0
- package/dist/rules/syntactic-patterns/generalization/universalizing-claims.js +84 -1
- package/dist/rules/syntactic-patterns/generalization/universalizing-claims.js.map +1 -1
- package/dist/rules/syntactic-patterns/lead-ins/formal-transition-density.js +92 -0
- package/dist/rules/syntactic-patterns/lead-ins/formal-transition-density.js.map +1 -0
- package/dist/rules/syntactic-patterns/lead-ins/generic-signposting.js +53 -3
- package/dist/rules/syntactic-patterns/lead-ins/generic-signposting.js.map +1 -1
- package/dist/rules/syntactic-patterns/lead-ins/lesson-framing.js +9 -0
- package/dist/rules/syntactic-patterns/lead-ins/lesson-framing.js.map +1 -1
- package/dist/rules/syntactic-patterns/lead-ins/llm-openers.js +38 -3
- package/dist/rules/syntactic-patterns/lead-ins/llm-openers.js.map +1 -1
- package/dist/rules/syntactic-patterns/lead-ins/observer-guidance.js +17 -0
- package/dist/rules/syntactic-patterns/lead-ins/observer-guidance.js.map +1 -1
- package/dist/rules/syntactic-patterns/lead-ins/private/discourse-evaluation.js +91 -0
- package/dist/rules/syntactic-patterns/lead-ins/private/discourse-evaluation.js.map +1 -0
- package/dist/rules/syntactic-patterns/repetition/demonstrative-emphasis.js +4 -0
- package/dist/rules/syntactic-patterns/repetition/demonstrative-emphasis.js.map +1 -1
- package/dist/rules/syntactic-patterns/repetition/fragment-stacking.js +4 -1
- package/dist/rules/syntactic-patterns/repetition/fragment-stacking.js.map +1 -1
- package/dist/rules/syntactic-patterns/repetition/repeated-predicate-end.js +110 -0
- package/dist/rules/syntactic-patterns/repetition/repeated-predicate-end.js.map +1 -0
- package/dist/rules/syntactic-patterns/repetition/repeated-sentence-starts.js +91 -0
- package/dist/rules/syntactic-patterns/repetition/repeated-sentence-starts.js.map +1 -0
- package/dist/rules/syntactic-patterns/repetition/triple-repeat.js +6 -1
- package/dist/rules/syntactic-patterns/repetition/triple-repeat.js.map +1 -1
- package/dist/rules/term-policy/recommended-terms.js +3 -3
- package/dist/rules/term-policy/recommended-terms.js.map +1 -1
- package/dist/rules/term-policy/required-terms.js +1 -1
- package/dist/rules/term-policy/required-terms.js.map +1 -1
- package/dist/rules/words/llm-vocabulary-density.js +78 -0
- package/dist/rules/words/llm-vocabulary-density.js.map +1 -0
- package/dist/shared/matchers/concrete-evidence.js +161 -0
- package/dist/shared/matchers/concrete-evidence.js.map +1 -0
- package/package.json +10 -4
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "missing-conversation-plan",
|
|
3
|
+
"class": "abstract-plan-metaphor",
|
|
4
|
+
"purpose": "Catch content and strategy plans described through missing-conversation metaphors instead of a concrete missing page, query, or decision.",
|
|
5
|
+
"matchMode": "contains",
|
|
6
|
+
"maxTokens": 28,
|
|
7
|
+
"templates": [
|
|
8
|
+
"the {planNoun} is missing the {abstractObject} after the {triggerNoun}.",
|
|
9
|
+
"the {planNoun} is missing the {abstractObject} beyond the {triggerNoun}.",
|
|
10
|
+
"the {planNoun} lacks the {abstractObject} after the {triggerNoun}."
|
|
11
|
+
],
|
|
12
|
+
"slots": {
|
|
13
|
+
"planNoun": [
|
|
14
|
+
"content plan",
|
|
15
|
+
"page plan",
|
|
16
|
+
"keyword plan",
|
|
17
|
+
"seo plan",
|
|
18
|
+
"strategy"
|
|
19
|
+
],
|
|
20
|
+
"abstractObject": [
|
|
21
|
+
"conversation",
|
|
22
|
+
"conversation path",
|
|
23
|
+
"journey",
|
|
24
|
+
"next step",
|
|
25
|
+
"follow-up path"
|
|
26
|
+
],
|
|
27
|
+
"triggerNoun": ["query", "search", "click", "first question"]
|
|
28
|
+
},
|
|
29
|
+
"rejectIf": [
|
|
30
|
+
"sentence names a concrete missing page, link, or query",
|
|
31
|
+
"sentence describes a literal conversation transcript"
|
|
32
|
+
],
|
|
33
|
+
"positiveExamples": [
|
|
34
|
+
"The content plan is missing the conversation after the query.",
|
|
35
|
+
"The page plan lacks the follow-up path after the search."
|
|
36
|
+
],
|
|
37
|
+
"negativeExamples": [
|
|
38
|
+
"The content plan is missing the pricing page after the CRM query.",
|
|
39
|
+
"The transcript is missing the conversation after the moderator left."
|
|
40
|
+
],
|
|
41
|
+
"notes": [
|
|
42
|
+
"This targets metaphorical planning language, not literal missing assets."
|
|
43
|
+
]
|
|
44
|
+
}
|
|
@@ -11,7 +11,14 @@
|
|
|
11
11
|
"the {eventSubject} created the best version of the {workflowNoun}.",
|
|
12
12
|
"the golden standard for {domainNoun} has arrived.",
|
|
13
13
|
"the {eventSubject} marks a very special achievement.",
|
|
14
|
-
"the {actorSubject} delivered excellent infrastructure for every user."
|
|
14
|
+
"the {actorSubject} delivered excellent infrastructure for every user.",
|
|
15
|
+
"the {documentSubject} clearly demonstrates the {importanceNoun} of the {strategyNoun}.",
|
|
16
|
+
"the {documentSubject} shows the {importanceNoun} of the {strategyNoun}.",
|
|
17
|
+
"the {eventSubject} was a remarkable success.",
|
|
18
|
+
"the {productSubject} is a visionary approach to {domainNoun}.",
|
|
19
|
+
"the {eventSubject} had a devastating impact on the {genericObject}.",
|
|
20
|
+
"the {comparativeSubject} is {comparativeJudgment}.",
|
|
21
|
+
"{abstractPersonifiedSubject} has a poor {businessMetric} in {businessDomain}."
|
|
15
22
|
],
|
|
16
23
|
"slots": {
|
|
17
24
|
"prestigeRole": [
|
|
@@ -28,7 +35,61 @@
|
|
|
28
35
|
"domainNoun": ["automation", "education", "modern design", "operations"],
|
|
29
36
|
"eventSubject": ["launch", "release", "update", "rollout"],
|
|
30
37
|
"workflowNoun": ["workflow", "process", "system", "platform"],
|
|
31
|
-
"actorSubject": ["team", "company", "group", "organization"]
|
|
38
|
+
"actorSubject": ["team", "company", "group", "organization"],
|
|
39
|
+
"documentSubject": ["report", "article", "study", "analysis", "memo"],
|
|
40
|
+
"importanceNoun": [
|
|
41
|
+
"crucial importance",
|
|
42
|
+
"critical importance",
|
|
43
|
+
"vital importance",
|
|
44
|
+
"significant value"
|
|
45
|
+
],
|
|
46
|
+
"strategyNoun": ["strategy", "approach", "method", "framework", "plan"],
|
|
47
|
+
"comparativeSubject": [
|
|
48
|
+
"first one",
|
|
49
|
+
"second one",
|
|
50
|
+
"first version",
|
|
51
|
+
"second version",
|
|
52
|
+
"first option",
|
|
53
|
+
"second option",
|
|
54
|
+
"first approach",
|
|
55
|
+
"second approach"
|
|
56
|
+
],
|
|
57
|
+
"comparativeJudgment": [
|
|
58
|
+
"less glamorous",
|
|
59
|
+
"more glamorous",
|
|
60
|
+
"more useful",
|
|
61
|
+
"less useful",
|
|
62
|
+
"more practical",
|
|
63
|
+
"less practical",
|
|
64
|
+
"more honest",
|
|
65
|
+
"less honest"
|
|
66
|
+
],
|
|
67
|
+
"abstractPersonifiedSubject": [
|
|
68
|
+
"glamour",
|
|
69
|
+
"activity",
|
|
70
|
+
"diagnosis",
|
|
71
|
+
"specificity",
|
|
72
|
+
"engagement",
|
|
73
|
+
"visibility",
|
|
74
|
+
"content",
|
|
75
|
+
"strategy"
|
|
76
|
+
],
|
|
77
|
+
"businessMetric": [
|
|
78
|
+
"conversion rate",
|
|
79
|
+
"return",
|
|
80
|
+
"payoff",
|
|
81
|
+
"signal",
|
|
82
|
+
"yield"
|
|
83
|
+
],
|
|
84
|
+
"businessDomain": [
|
|
85
|
+
"technical audits",
|
|
86
|
+
"content strategy",
|
|
87
|
+
"search",
|
|
88
|
+
"seo",
|
|
89
|
+
"ai search",
|
|
90
|
+
"consulting",
|
|
91
|
+
"marketing"
|
|
92
|
+
]
|
|
32
93
|
},
|
|
33
94
|
"rejectIf": [
|
|
34
95
|
"sentence names a concrete metric, date, source, citation, title, quote, or named person",
|
|
@@ -41,13 +102,18 @@
|
|
|
41
102
|
"The tool is a masterpiece of modern design.",
|
|
42
103
|
"The launch created the best version of the workflow.",
|
|
43
104
|
"The golden standard for automation has arrived.",
|
|
44
|
-
"The team delivered excellent infrastructure for every user."
|
|
105
|
+
"The team delivered excellent infrastructure for every user.",
|
|
106
|
+
"The report clearly demonstrates the crucial importance of the strategy.",
|
|
107
|
+
"The rollout was a remarkable success.",
|
|
108
|
+
"The platform is a visionary approach to education.",
|
|
109
|
+
"The launch had a devastating impact on the industry."
|
|
45
110
|
],
|
|
46
111
|
"negativeExamples": [
|
|
47
112
|
"The renowned architect Lina Bo Bardi designed the museum in 1951.",
|
|
48
113
|
"The benchmark reported the best score, 94.1 percent, on the validation set.",
|
|
49
114
|
"The review quoted \"masterpiece\" while disagreeing with the marketing copy.",
|
|
50
|
-
"The 1918 armistice was unprecedented in the regiment's records."
|
|
115
|
+
"The 1918 armistice was unprecedented in the regiment's records.",
|
|
116
|
+
"The report demonstrates that revenue rose 14 percent after the strategy changed."
|
|
51
117
|
],
|
|
52
118
|
"notes": [
|
|
53
119
|
"This uses source-backed puffery terms from the Wikipedia puffery material.",
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"{workSubject} {startVerb}.",
|
|
9
9
|
"{workSubject} {startVerb} when {genericSubject} {abstractAction}.",
|
|
10
10
|
"{workSubject} {startVerb} after {abstractEvent} {fadesVerb}.",
|
|
11
|
-
"where {workSubject} {startVerb}."
|
|
11
|
+
"where {workSubject} {startVerb}.",
|
|
12
|
+
"that was where {workSubject} {pastStartVerb}."
|
|
12
13
|
],
|
|
13
14
|
"slots": {
|
|
14
15
|
"workSubject": [
|
|
@@ -20,6 +21,7 @@
|
|
|
20
21
|
"the inner work"
|
|
21
22
|
],
|
|
22
23
|
"startVerb": ["begins", "starts", "happens", "lives"],
|
|
24
|
+
"pastStartVerb": ["began", "started", "happened", "lived"],
|
|
23
25
|
"genericSubject": ["we", "you", "they", "people", "the team"],
|
|
24
26
|
"abstractAction": [
|
|
25
27
|
"start naming what matters",
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
"templates": [
|
|
8
8
|
"{silenceSubject} {linkingVerb} not {thinState}.",
|
|
9
9
|
"{silenceSubject} {linkingVerb} {thinState}.",
|
|
10
|
+
"{silenceSubject} became {thinState}.",
|
|
11
|
+
"{silenceSubject} turned {thinState}.",
|
|
10
12
|
"{deicticSubject} only made {silenceSubject} feel {thinState}.",
|
|
11
13
|
"{placeSubject} had gone quiet in {mannerFrame}.",
|
|
12
14
|
"{humanSubject} could make {silenceSubject} feel {thinState}."
|
|
@@ -51,6 +53,8 @@
|
|
|
51
53
|
"positiveExamples": [
|
|
52
54
|
"The silence was not empty.",
|
|
53
55
|
"The silence felt arranged.",
|
|
56
|
+
"The silence became heavy.",
|
|
57
|
+
"The silence turned strange.",
|
|
54
58
|
"This only made the silence feel deliberate.",
|
|
55
59
|
"The office had gone quiet in the way offices do.",
|
|
56
60
|
"She could make silence feel crowded.",
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "solution-boring-frame",
|
|
3
|
+
"class": "solution-boring",
|
|
4
|
+
"purpose": "Catch solution-like nouns framed as boring, a consultant or LLM wrapper that praises unglamorous obviousness without adding substance.",
|
|
5
|
+
"matchMode": "contains",
|
|
6
|
+
"maxTokens": 40,
|
|
7
|
+
"templates": [
|
|
8
|
+
"the {solutionNoun} {linkingVerb} boring.",
|
|
9
|
+
"the {solutionNoun} {linkingVerb} boring:",
|
|
10
|
+
"this {solutionNoun} {linkingVerb} boring.",
|
|
11
|
+
"this {solutionNoun} {linkingVerb} boring:",
|
|
12
|
+
"the {solutionQualifier} {solutionNoun} {linkingVerb} boring.",
|
|
13
|
+
"this {solutionQualifier} {solutionNoun} {linkingVerb} boring.",
|
|
14
|
+
"the {solutionQualifier} {solutionNoun} {linkingVerb} boring:"
|
|
15
|
+
],
|
|
16
|
+
"slots": {
|
|
17
|
+
"solutionQualifier": [
|
|
18
|
+
"right",
|
|
19
|
+
"correct",
|
|
20
|
+
"good",
|
|
21
|
+
"better",
|
|
22
|
+
"best",
|
|
23
|
+
"practical",
|
|
24
|
+
"obvious",
|
|
25
|
+
"simple",
|
|
26
|
+
"real",
|
|
27
|
+
"actual"
|
|
28
|
+
],
|
|
29
|
+
"solutionNoun": [
|
|
30
|
+
"answer",
|
|
31
|
+
"approach",
|
|
32
|
+
"check",
|
|
33
|
+
"choice",
|
|
34
|
+
"fix",
|
|
35
|
+
"method",
|
|
36
|
+
"option",
|
|
37
|
+
"plan",
|
|
38
|
+
"remedy",
|
|
39
|
+
"response",
|
|
40
|
+
"solution",
|
|
41
|
+
"strategy",
|
|
42
|
+
"tactic"
|
|
43
|
+
],
|
|
44
|
+
"linkingVerb": ["is", "was", "becomes", "became", "remains", "stays"]
|
|
45
|
+
},
|
|
46
|
+
"rejectIf": [
|
|
47
|
+
"subject is a concrete entertainment, event, object, person, or venue noun",
|
|
48
|
+
"sentence uses boring as a normal literal evaluation of experience",
|
|
49
|
+
"sentence names a concrete process noun such as audit or report rather than a solution-like noun"
|
|
50
|
+
],
|
|
51
|
+
"positiveExamples": [
|
|
52
|
+
"The solution is boring.",
|
|
53
|
+
"The solution is boring: move copy into raw HTML.",
|
|
54
|
+
"This check is boring, fast, and easy to prove in five minutes.",
|
|
55
|
+
"This check is boring, fast, and easy to prove in less than five minutes.",
|
|
56
|
+
"The right solution is boring.",
|
|
57
|
+
"The correct answer is boring.",
|
|
58
|
+
"The practical plan is boring: remove the redirect chain."
|
|
59
|
+
],
|
|
60
|
+
"negativeExamples": [
|
|
61
|
+
"The movie is boring.",
|
|
62
|
+
"The party is boring.",
|
|
63
|
+
"The audit is boring.",
|
|
64
|
+
"The report is boring.",
|
|
65
|
+
"The smoke detector check is boring but required."
|
|
66
|
+
],
|
|
67
|
+
"notes": [
|
|
68
|
+
"This intentionally excludes audit and report because those are process or document nouns, not solution-like nouns.",
|
|
69
|
+
"This intentionally excludes path, route, and way because they commonly name literal travel or movement.",
|
|
70
|
+
"Concrete details after the colon should not suppress this pattern because the slop is the wrapper itself."
|
|
71
|
+
]
|
|
72
|
+
}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"maxTokens": 80,
|
|
7
7
|
"templates": [
|
|
8
8
|
"{truthSubject} {emergenceVerb}.",
|
|
9
|
+
"{truthSubject} had {emergenceVerb}.",
|
|
9
10
|
"{truthSubject} starts {motionVerb}.",
|
|
10
11
|
"{truthSubject} began to {motionVerb}.",
|
|
11
12
|
"{truthSubject} {arrivalVerb} as {abstractForm}.",
|
|
@@ -57,6 +58,7 @@
|
|
|
57
58
|
"positiveExamples": [
|
|
58
59
|
"Eventually the truth surfaces.",
|
|
59
60
|
"The answer arrives as a body sensation.",
|
|
61
|
+
"The answer had arrived as a small signal.",
|
|
60
62
|
"The meaning arrives later.",
|
|
61
63
|
"The truth starts moving around.",
|
|
62
64
|
"The answer began to take shape.",
|
|
@@ -6,9 +6,20 @@
|
|
|
6
6
|
"{payoffOpener} {payoffComplement}.",
|
|
7
7
|
"{payoffOpener} where {genericWork} {startVerb}.",
|
|
8
8
|
"{payoffOpener} why {genericSubject} {importanceVerb}.",
|
|
9
|
-
"{payoffOpener} how {genericChange} {startVerb}."
|
|
9
|
+
"{payoffOpener} how {genericChange} {startVerb}.",
|
|
10
|
+
"{plainOpener} why {genericSubject} {importanceVerb}.",
|
|
11
|
+
"{plainOpener} where {genericWork} {startVerb}.",
|
|
12
|
+
"{plainOpener} how {genericChange} {startVerb}.",
|
|
13
|
+
"{plainOpener} the reason {genericSubject} {importanceVerb}."
|
|
10
14
|
],
|
|
11
15
|
"slots": {
|
|
16
|
+
"plainOpener": [
|
|
17
|
+
"and that is",
|
|
18
|
+
"and this is",
|
|
19
|
+
"that is",
|
|
20
|
+
"this is",
|
|
21
|
+
"which is"
|
|
22
|
+
],
|
|
12
23
|
"payoffOpener": [
|
|
13
24
|
"and that is",
|
|
14
25
|
"and this is",
|
|
@@ -33,7 +44,9 @@
|
|
|
33
44
|
"how the work begins",
|
|
34
45
|
"the point",
|
|
35
46
|
"the part that matters",
|
|
36
|
-
"the real work"
|
|
47
|
+
"the real work",
|
|
48
|
+
"the reason",
|
|
49
|
+
"the takeaway"
|
|
37
50
|
],
|
|
38
51
|
"genericWork": [
|
|
39
52
|
"the work",
|
|
@@ -52,9 +65,23 @@
|
|
|
52
65
|
"the work",
|
|
53
66
|
"the lesson",
|
|
54
67
|
"the process",
|
|
55
|
-
"the change"
|
|
68
|
+
"the change",
|
|
69
|
+
"the answer",
|
|
70
|
+
"the focus",
|
|
71
|
+
"the plan",
|
|
72
|
+
"the problem",
|
|
73
|
+
"the report",
|
|
74
|
+
"the signal"
|
|
75
|
+
],
|
|
76
|
+
"importanceVerb": [
|
|
77
|
+
"matters",
|
|
78
|
+
"works",
|
|
79
|
+
"sticks",
|
|
80
|
+
"lasts",
|
|
81
|
+
"counts",
|
|
82
|
+
"changes",
|
|
83
|
+
"changes things"
|
|
56
84
|
],
|
|
57
|
-
"importanceVerb": ["matters", "works", "sticks", "lasts", "changes things"],
|
|
58
85
|
"genericChange": [
|
|
59
86
|
"change",
|
|
60
87
|
"repair",
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "vague-summary-cost",
|
|
3
|
+
"class": "vague-summary-cost",
|
|
4
|
+
"purpose": "Catch vague all-of-that cost claims that summarize several actions as expensive or wasteful without naming the concrete waste.",
|
|
5
|
+
"matchMode": "contains",
|
|
6
|
+
"maxTokens": 28,
|
|
7
|
+
"templates": [
|
|
8
|
+
"{summarySubject} gets {costAdjective} when {ignoranceSubject} {knowledgeVerb} which {problemNoun} they are {workVerb}.",
|
|
9
|
+
"{summarySubject} gets {costAdjective} when {ignoranceSubject} {knowledgeVerb} what {problemNoun} they are {workVerb}."
|
|
10
|
+
],
|
|
11
|
+
"slots": {
|
|
12
|
+
"summarySubject": ["all of that", "all this", "all that"],
|
|
13
|
+
"costAdjective": ["expensive", "costly", "wasteful", "slow"],
|
|
14
|
+
"ignoranceSubject": ["nobody", "no one"],
|
|
15
|
+
"knowledgeVerb": ["knows", "understands"],
|
|
16
|
+
"problemNoun": ["problem", "issue", "question"],
|
|
17
|
+
"workVerb": ["solving", "answering", "fixing"]
|
|
18
|
+
},
|
|
19
|
+
"rejectIf": [
|
|
20
|
+
"sentence names the concrete cost, budget, invoice, time loss, or team affected",
|
|
21
|
+
"summary subject points to a specific preceding line item rather than a vague pile of activity"
|
|
22
|
+
],
|
|
23
|
+
"positiveExamples": [
|
|
24
|
+
"All of that gets expensive when nobody knows which problem they are solving.",
|
|
25
|
+
"All this gets wasteful when no one knows what question they are answering."
|
|
26
|
+
],
|
|
27
|
+
"negativeExamples": [
|
|
28
|
+
"The migration got expensive when the API vendor raised the monthly bill.",
|
|
29
|
+
"All of that cost 14 hours because the crawler retried broken URLs."
|
|
30
|
+
],
|
|
31
|
+
"notes": [
|
|
32
|
+
"This pattern intentionally allows a when-clause because the slop frame is the vague summary subject plus abstract ignorance claim."
|
|
33
|
+
]
|
|
34
|
+
}
|
|
@@ -23,7 +23,23 @@
|
|
|
23
23
|
"the day",
|
|
24
24
|
"the moment",
|
|
25
25
|
"the path",
|
|
26
|
-
"the choice"
|
|
26
|
+
"the choice",
|
|
27
|
+
"the problem",
|
|
28
|
+
"the fix",
|
|
29
|
+
"the report",
|
|
30
|
+
"the spreadsheet",
|
|
31
|
+
"the decision",
|
|
32
|
+
"the decisions",
|
|
33
|
+
"the audit",
|
|
34
|
+
"the strategy",
|
|
35
|
+
"the plan",
|
|
36
|
+
"the content",
|
|
37
|
+
"the page",
|
|
38
|
+
"the post",
|
|
39
|
+
"the source",
|
|
40
|
+
"the signal",
|
|
41
|
+
"the surface",
|
|
42
|
+
"the question"
|
|
27
43
|
],
|
|
28
44
|
"thresholdVerb": [
|
|
29
45
|
"got",
|
|
@@ -32,9 +48,20 @@
|
|
|
32
48
|
"turned",
|
|
33
49
|
"seemed",
|
|
34
50
|
"stayed",
|
|
35
|
-
"remained"
|
|
51
|
+
"remained",
|
|
52
|
+
"get",
|
|
53
|
+
"gets"
|
|
54
|
+
],
|
|
55
|
+
"feelingVerb": [
|
|
56
|
+
"feels",
|
|
57
|
+
"felt",
|
|
58
|
+
"looks",
|
|
59
|
+
"looked",
|
|
60
|
+
"sounds",
|
|
61
|
+
"sounded",
|
|
62
|
+
"seems",
|
|
63
|
+
"seemed"
|
|
36
64
|
],
|
|
37
|
-
"feelingVerb": ["felt", "looked", "sounded", "seemed"],
|
|
38
65
|
"evaluativeComplement": [
|
|
39
66
|
"different",
|
|
40
67
|
"better",
|
|
@@ -49,7 +76,16 @@
|
|
|
49
76
|
"simpler",
|
|
50
77
|
"complicated",
|
|
51
78
|
"possible",
|
|
52
|
-
"real"
|
|
79
|
+
"real",
|
|
80
|
+
"precise",
|
|
81
|
+
"thin",
|
|
82
|
+
"useful",
|
|
83
|
+
"useless",
|
|
84
|
+
"weak",
|
|
85
|
+
"strong",
|
|
86
|
+
"expensive",
|
|
87
|
+
"generic",
|
|
88
|
+
"specific"
|
|
53
89
|
],
|
|
54
90
|
"comparativeComplement": [
|
|
55
91
|
"more real",
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
const CONCRETE_EXPLANATION_TOKENS = new Set([
|
|
2
|
+
"api",
|
|
3
|
+
"archive",
|
|
4
|
+
"auditor",
|
|
5
|
+
"billing",
|
|
6
|
+
"crew",
|
|
7
|
+
"decibels",
|
|
8
|
+
"dns",
|
|
9
|
+
"doctor",
|
|
10
|
+
"email",
|
|
11
|
+
"endpoint",
|
|
12
|
+
"facilities",
|
|
13
|
+
"export",
|
|
14
|
+
"generator",
|
|
15
|
+
"html",
|
|
16
|
+
"hydration",
|
|
17
|
+
"hinge",
|
|
18
|
+
"invoice",
|
|
19
|
+
"key",
|
|
20
|
+
"ledger",
|
|
21
|
+
"masonry",
|
|
22
|
+
"mark",
|
|
23
|
+
"named",
|
|
24
|
+
"offset",
|
|
25
|
+
"parser",
|
|
26
|
+
"qualified",
|
|
27
|
+
"raw",
|
|
28
|
+
"rebate",
|
|
29
|
+
"removed",
|
|
30
|
+
"repayment",
|
|
31
|
+
"recording",
|
|
32
|
+
"router",
|
|
33
|
+
"screening",
|
|
34
|
+
"seam",
|
|
35
|
+
"server",
|
|
36
|
+
"signed",
|
|
37
|
+
"signatures",
|
|
38
|
+
"signal",
|
|
39
|
+
"service",
|
|
40
|
+
"socket",
|
|
41
|
+
"split",
|
|
42
|
+
"tax",
|
|
43
|
+
"token",
|
|
44
|
+
"trial",
|
|
45
|
+
"volume",
|
|
46
|
+
"wall"
|
|
47
|
+
]);
|
|
48
|
+
const NUMERIC_EVIDENCE_TOKENS = new Set([
|
|
49
|
+
"date",
|
|
50
|
+
"day",
|
|
51
|
+
"days",
|
|
52
|
+
"dollar",
|
|
53
|
+
"dollars",
|
|
54
|
+
"failed",
|
|
55
|
+
"percent",
|
|
56
|
+
"percentage",
|
|
57
|
+
"quarterly",
|
|
58
|
+
"score",
|
|
59
|
+
"year",
|
|
60
|
+
"years"
|
|
61
|
+
]);
|
|
62
|
+
function tokenHasDigit(text) {
|
|
63
|
+
for (const character of text) {
|
|
64
|
+
if (character >= "0" && character <= "9") {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
function isAsciiUppercase(character) {
|
|
71
|
+
return character >= "A" && character <= "Z";
|
|
72
|
+
}
|
|
73
|
+
function isAsciiLowercase(character) {
|
|
74
|
+
return character >= "a" && character <= "z";
|
|
75
|
+
}
|
|
76
|
+
function hasTicketLikeMarker(text) {
|
|
77
|
+
for (let index = 0; index < text.length - 3; index += 1) {
|
|
78
|
+
if (isAsciiUppercase(text[index] ?? "") &&
|
|
79
|
+
isAsciiUppercase(text[index + 1] ?? "") &&
|
|
80
|
+
text[index + 2] === "-" &&
|
|
81
|
+
tokenHasDigit(text[index + 3] ?? "")) {
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
function hasDottedIdentifier(text) {
|
|
88
|
+
for (let index = 1; index < text.length - 1; index += 1) {
|
|
89
|
+
if (text[index] === "." &&
|
|
90
|
+
isAsciiLowercase(text[index - 1] ?? "") &&
|
|
91
|
+
isAsciiLowercase(text[index + 1] ?? "")) {
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
function hasConcreteMarker(text) {
|
|
98
|
+
return (text.includes("://") ||
|
|
99
|
+
text.includes("@") ||
|
|
100
|
+
text.includes("`") ||
|
|
101
|
+
hasTicketLikeMarker(text) ||
|
|
102
|
+
hasDottedIdentifier(text));
|
|
103
|
+
}
|
|
104
|
+
function hasNumericEvidence(tokens) {
|
|
105
|
+
return tokens.some((token, index) => {
|
|
106
|
+
if (!tokenHasDigit(token.normalized)) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
return (NUMERIC_EVIDENCE_TOKENS.has(tokens[index - 1]?.normalized ?? "") ||
|
|
110
|
+
NUMERIC_EVIDENCE_TOKENS.has(tokens[index + 1]?.normalized ?? ""));
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
export function hasConcreteExplanation(tokens) {
|
|
114
|
+
return tokens.some((token) => CONCRETE_EXPLANATION_TOKENS.has(token.normalized));
|
|
115
|
+
}
|
|
116
|
+
export function shouldRejectConcreteEvidence(text, tokens) {
|
|
117
|
+
return hasConcreteMarker(text) || hasNumericEvidence(tokens);
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=concrete-guards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concrete-guards.js","sourceRoot":"","sources":["../../../../src/rules/semantic-thinness/private/concrete-guards.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,21 @@
|
|
|
1
|
+
import differentJobSummary from "../patterns/different-job-summary.json" with { type: "json" };
|
|
1
2
|
import genericPressureOrStakes from "../patterns/generic-pressure-or-stakes.json" with { type: "json" };
|
|
2
3
|
import genericRealization from "../patterns/generic-realization.json" with { type: "json" };
|
|
3
4
|
import hollowSignificance from "../patterns/hollow-significance.json" with { type: "json" };
|
|
4
5
|
import lowInformationPhysicalBlocking from "../patterns/low-information-physical-blocking.json" with { type: "json" };
|
|
6
|
+
import missingConversationPlan from "../patterns/missing-conversation-plan.json" with { type: "json" };
|
|
5
7
|
import vagueConnectivePayoff from "../patterns/vague-connective-payoff.json" with { type: "json" };
|
|
8
|
+
import vagueSummaryCost from "../patterns/vague-summary-cost.json" with { type: "json" };
|
|
6
9
|
import vagueThresholdChange from "../patterns/vague-threshold-change.json" with { type: "json" };
|
|
7
10
|
export const semanticThinnessPatternSetB = [
|
|
11
|
+
differentJobSummary,
|
|
8
12
|
genericPressureOrStakes,
|
|
9
13
|
genericRealization,
|
|
10
14
|
hollowSignificance,
|
|
11
15
|
lowInformationPhysicalBlocking,
|
|
16
|
+
missingConversationPlan,
|
|
12
17
|
vagueConnectivePayoff,
|
|
18
|
+
vagueSummaryCost,
|
|
13
19
|
vagueThresholdChange
|
|
14
20
|
];
|
|
15
21
|
//# sourceMappingURL=pattern-data-b.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pattern-data-b.js","sourceRoot":"","sources":["../../../../src/rules/semantic-thinness/private/pattern-data-b.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,MAAM,6CAA6C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACxG,OAAO,kBAAkB,MAAM,sCAAsC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5F,OAAO,kBAAkB,MAAM,sCAAsC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5F,OAAO,8BAA8B,MAAM,oDAAoD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACtH,OAAO,qBAAqB,MAAM,0CAA0C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnG,OAAO,oBAAoB,MAAM,yCAAyC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAGjG,MAAM,CAAC,MAAM,2BAA2B,GAAuC;IAC7E,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,8BAA8B;IAC9B,qBAAqB;IACrB,oBAAoB;CACrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"pattern-data-b.js","sourceRoot":"","sources":["../../../../src/rules/semantic-thinness/private/pattern-data-b.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,wCAAwC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/F,OAAO,uBAAuB,MAAM,6CAA6C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACxG,OAAO,kBAAkB,MAAM,sCAAsC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5F,OAAO,kBAAkB,MAAM,sCAAsC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5F,OAAO,8BAA8B,MAAM,oDAAoD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACtH,OAAO,uBAAuB,MAAM,4CAA4C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACvG,OAAO,qBAAqB,MAAM,0CAA0C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnG,OAAO,gBAAgB,MAAM,qCAAqC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACzF,OAAO,oBAAoB,MAAM,yCAAyC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAGjG,MAAM,CAAC,MAAM,2BAA2B,GAAuC;IAC7E,mBAAmB;IACnB,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,8BAA8B;IAC9B,uBAAuB;IACvB,qBAAqB;IACrB,gBAAgB;IAChB,oBAAoB;CACrB,CAAC"}
|
|
@@ -4,6 +4,7 @@ import pointIsFrame from "../patterns/point-is-frame.json" with { type: "json" }
|
|
|
4
4
|
import pufferyEvaluativeClaim from "../patterns/puffery-evaluative-claim.json" with { type: "json" };
|
|
5
5
|
import realWorkBegins from "../patterns/real-work-begins.json" with { type: "json" };
|
|
6
6
|
import silenceAsActor from "../patterns/silence-as-actor.json" with { type: "json" };
|
|
7
|
+
import solutionBoringFrame from "../patterns/solution-boring-frame.json" with { type: "json" };
|
|
7
8
|
import somethingShifted from "../patterns/something-shifted.json" with { type: "json" };
|
|
8
9
|
import truthAnswerMoves from "../patterns/truth-answer-moves.json" with { type: "json" };
|
|
9
10
|
export const semanticThinnessPatternSetD = [
|
|
@@ -13,6 +14,7 @@ export const semanticThinnessPatternSetD = [
|
|
|
13
14
|
pufferyEvaluativeClaim,
|
|
14
15
|
realWorkBegins,
|
|
15
16
|
silenceAsActor,
|
|
17
|
+
solutionBoringFrame,
|
|
16
18
|
somethingShifted,
|
|
17
19
|
truthAnswerMoves
|
|
18
20
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pattern-data-d.js","sourceRoot":"","sources":["../../../../src/rules/semantic-thinness/private/pattern-data-d.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,6BAA6B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1E,OAAO,cAAc,MAAM,kCAAkC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACpF,OAAO,YAAY,MAAM,iCAAiC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACjF,OAAO,sBAAsB,MAAM,2CAA2C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrG,OAAO,cAAc,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrF,OAAO,cAAc,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrF,OAAO,gBAAgB,MAAM,oCAAoC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACxF,OAAO,gBAAgB,MAAM,qCAAqC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAGzF,MAAM,CAAC,MAAM,2BAA2B,GAAuC;IAC7E,SAAS;IACT,cAAc;IACd,YAAY;IACZ,sBAAsB;IACtB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,gBAAgB;CACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"pattern-data-d.js","sourceRoot":"","sources":["../../../../src/rules/semantic-thinness/private/pattern-data-d.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,6BAA6B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1E,OAAO,cAAc,MAAM,kCAAkC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACpF,OAAO,YAAY,MAAM,iCAAiC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACjF,OAAO,sBAAsB,MAAM,2CAA2C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrG,OAAO,cAAc,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrF,OAAO,cAAc,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACrF,OAAO,mBAAmB,MAAM,wCAAwC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/F,OAAO,gBAAgB,MAAM,oCAAoC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACxF,OAAO,gBAAgB,MAAM,qCAAqC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAGzF,MAAM,CAAC,MAAM,2BAA2B,GAAuC;IAC7E,SAAS;IACT,cAAc;IACd,YAAY;IACZ,sBAAsB;IACtB,cAAc;IACd,cAAc;IACd,mBAAmB;IACnB,gBAAgB;IAChB,gBAAgB;CACjB,CAAC"}
|