slopless 0.1.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/README.md +64 -0
- package/dist/families/metrics/avg-sentence-length.js +22 -0
- package/dist/families/metrics/avg-sentence-length.js.map +1 -0
- package/dist/families/metrics/coleman-liau.js +27 -0
- package/dist/families/metrics/coleman-liau.js.map +1 -0
- package/dist/families/metrics/flesch-kincaid.js +27 -0
- package/dist/families/metrics/flesch-kincaid.js.map +1 -0
- package/dist/families/metrics/gunning-fog.js +27 -0
- package/dist/families/metrics/gunning-fog.js.map +1 -0
- package/dist/families/metrics/paragraph-length.js +21 -0
- package/dist/families/metrics/paragraph-length.js.map +1 -0
- package/dist/families/metrics/word-repetition.js +46 -0
- package/dist/families/metrics/word-repetition.js.map +1 -0
- package/dist/families/orthography/colon-dramatic.js +117 -0
- package/dist/families/orthography/colon-dramatic.js.map +1 -0
- package/dist/families/orthography/em-dashes.js +41 -0
- package/dist/families/orthography/em-dashes.js.map +1 -0
- package/dist/families/orthography/exclamation-density.js +51 -0
- package/dist/families/orthography/exclamation-density.js.map +1 -0
- package/dist/families/orthography/fake-timestamps.js +103 -0
- package/dist/families/orthography/fake-timestamps.js.map +1 -0
- package/dist/families/orthography/sentence-case.js +66 -0
- package/dist/families/orthography/sentence-case.js.map +1 -0
- package/dist/families/orthography/smart-quotes.js +53 -0
- package/dist/families/orthography/smart-quotes.js.map +1 -0
- package/dist/families/phrases/cliches.js +17 -0
- package/dist/families/phrases/cliches.js.map +1 -0
- package/dist/families/phrases/corporate-speak.js +23 -0
- package/dist/families/phrases/corporate-speak.js.map +1 -0
- package/dist/families/phrases/data/cliches.json +699 -0
- package/dist/families/phrases/data/corporate-speak.json +27 -0
- package/dist/families/phrases/data/prohibited-phrases.json +8 -0
- package/dist/families/phrases/data/skunked-terms.json +10 -0
- package/dist/families/phrases/data/uncomparables.json +57 -0
- package/dist/families/phrases/humble-bragger.js +26 -0
- package/dist/families/phrases/humble-bragger.js.map +1 -0
- package/dist/families/phrases/jargon-faker.js +84 -0
- package/dist/families/phrases/jargon-faker.js.map +1 -0
- package/dist/families/phrases/llm-disclaimer.js +54 -0
- package/dist/families/phrases/llm-disclaimer.js.map +1 -0
- package/dist/families/phrases/prohibited-phrases.js +17 -0
- package/dist/families/phrases/prohibited-phrases.js.map +1 -0
- package/dist/families/phrases/skunked-terms.js +23 -0
- package/dist/families/phrases/skunked-terms.js.map +1 -0
- package/dist/families/phrases/uncomparables.js +78 -0
- package/dist/families/phrases/uncomparables.js.map +1 -0
- package/dist/families/semantic-thinness/patterns/abstract-contrast.json +85 -0
- package/dist/families/semantic-thinness/patterns/abstract-metaphor-claim.json +112 -0
- package/dist/families/semantic-thinness/patterns/body-emotion-shorthand.json +77 -0
- package/dist/families/semantic-thinness/patterns/body-knows.json +80 -0
- package/dist/families/semantic-thinness/patterns/deictic-summary.json +109 -0
- package/dist/families/semantic-thinness/patterns/empty-atmosphere-shift.json +70 -0
- package/dist/families/semantic-thinness/patterns/empty-emotional-weather.json +104 -0
- package/dist/families/semantic-thinness/patterns/empty-scene-state.json +117 -0
- package/dist/families/semantic-thinness/patterns/empty-scene-transition.json +98 -0
- package/dist/families/semantic-thinness/patterns/gaze-choreography.json +87 -0
- package/dist/families/semantic-thinness/patterns/generic-lesson-extraction.json +82 -0
- package/dist/families/semantic-thinness/patterns/generic-pressure-or-stakes.json +107 -0
- package/dist/families/semantic-thinness/patterns/generic-realization.json +113 -0
- package/dist/families/semantic-thinness/patterns/hollow-significance.json +103 -0
- package/dist/families/semantic-thinness/patterns/low-information-physical-blocking.json +113 -0
- package/dist/families/semantic-thinness/patterns/point-is-frame.json +81 -0
- package/dist/families/semantic-thinness/patterns/real-work-begins.json +66 -0
- package/dist/families/semantic-thinness/patterns/silence-as-actor.json +69 -0
- package/dist/families/semantic-thinness/patterns/something-shifted.json +73 -0
- package/dist/families/semantic-thinness/patterns/truth-answer-moves.json +75 -0
- package/dist/families/semantic-thinness/patterns/vague-connective-payoff.json +90 -0
- package/dist/families/semantic-thinness/patterns/vague-threshold-change.json +98 -0
- package/dist/families/semantic-thinness/private/pattern-data-a.js +15 -0
- package/dist/families/semantic-thinness/private/pattern-data-a.js.map +1 -0
- package/dist/families/semantic-thinness/private/pattern-data-b.js +15 -0
- package/dist/families/semantic-thinness/private/pattern-data-b.js.map +1 -0
- package/dist/families/semantic-thinness/private/pattern-data-c.js +9 -0
- package/dist/families/semantic-thinness/private/pattern-data-c.js.map +1 -0
- package/dist/families/semantic-thinness/private/pattern-data-d.js +17 -0
- package/dist/families/semantic-thinness/private/pattern-data-d.js.map +1 -0
- package/dist/families/semantic-thinness/private/pattern-data.js +11 -0
- package/dist/families/semantic-thinness/private/pattern-data.js.map +1 -0
- package/dist/families/semantic-thinness/private/pattern-matcher.js +172 -0
- package/dist/families/semantic-thinness/private/pattern-matcher.js.map +1 -0
- package/dist/families/semantic-thinness/semantic-thinness.js +25 -0
- package/dist/families/semantic-thinness/semantic-thinness.js.map +1 -0
- package/dist/families/syntactic-patterns/authority/authority-padding.js +81 -0
- package/dist/families/syntactic-patterns/authority/authority-padding.js.map +1 -0
- package/dist/families/syntactic-patterns/closers/affirmation-closers.js +48 -0
- package/dist/families/syntactic-patterns/closers/affirmation-closers.js.map +1 -0
- package/dist/families/syntactic-patterns/closers/boilerplate-conclusion.js +131 -0
- package/dist/families/syntactic-patterns/closers/boilerplate-conclusion.js.map +1 -0
- package/dist/families/syntactic-patterns/closers/false-question.js +30 -0
- package/dist/families/syntactic-patterns/closers/false-question.js.map +1 -0
- package/dist/families/syntactic-patterns/closers/summative-closer.js +33 -0
- package/dist/families/syntactic-patterns/closers/summative-closer.js.map +1 -0
- package/dist/families/syntactic-patterns/contrast/blame-reframe.js +59 -0
- package/dist/families/syntactic-patterns/contrast/blame-reframe.js.map +1 -0
- package/dist/families/syntactic-patterns/contrast/contrastive-aphorism.js +203 -0
- package/dist/families/syntactic-patterns/contrast/contrastive-aphorism.js.map +1 -0
- package/dist/families/syntactic-patterns/contrast/negation-reframe.js +20 -0
- package/dist/families/syntactic-patterns/contrast/negation-reframe.js.map +1 -0
- package/dist/families/syntactic-patterns/contrast/private/negation-reframe-matcher.js +218 -0
- package/dist/families/syntactic-patterns/contrast/private/negation-reframe-matcher.js.map +1 -0
- package/dist/families/syntactic-patterns/contrast/private/negation-reframe-parts.js +136 -0
- package/dist/families/syntactic-patterns/contrast/private/negation-reframe-parts.js.map +1 -0
- package/dist/families/syntactic-patterns/generalization/softening-language.js +143 -0
- package/dist/families/syntactic-patterns/generalization/softening-language.js.map +1 -0
- package/dist/families/syntactic-patterns/generalization/universalizing-claims.js +137 -0
- package/dist/families/syntactic-patterns/generalization/universalizing-claims.js.map +1 -0
- package/dist/families/syntactic-patterns/lead-ins/boilerplate-framing.js +104 -0
- package/dist/families/syntactic-patterns/lead-ins/boilerplate-framing.js.map +1 -0
- package/dist/families/syntactic-patterns/lead-ins/generic-signposting.js +230 -0
- package/dist/families/syntactic-patterns/lead-ins/generic-signposting.js.map +1 -0
- package/dist/families/syntactic-patterns/lead-ins/lesson-framing.js +76 -0
- package/dist/families/syntactic-patterns/lead-ins/lesson-framing.js.map +1 -0
- package/dist/families/syntactic-patterns/lead-ins/llm-openers.js +24 -0
- package/dist/families/syntactic-patterns/lead-ins/llm-openers.js.map +1 -0
- package/dist/families/syntactic-patterns/lead-ins/observer-guidance.js +95 -0
- package/dist/families/syntactic-patterns/lead-ins/observer-guidance.js.map +1 -0
- package/dist/families/syntactic-patterns/llm-artifacts/response-wrapper.js +106 -0
- package/dist/families/syntactic-patterns/llm-artifacts/response-wrapper.js.map +1 -0
- package/dist/families/syntactic-patterns/repetition/demonstrative-emphasis.js +251 -0
- package/dist/families/syntactic-patterns/repetition/demonstrative-emphasis.js.map +1 -0
- package/dist/families/syntactic-patterns/repetition/empty-emphasis.js +108 -0
- package/dist/families/syntactic-patterns/repetition/empty-emphasis.js.map +1 -0
- package/dist/families/syntactic-patterns/repetition/fragment-stacking.js +306 -0
- package/dist/families/syntactic-patterns/repetition/fragment-stacking.js.map +1 -0
- package/dist/families/syntactic-patterns/repetition/triple-repeat.js +149 -0
- package/dist/families/syntactic-patterns/repetition/triple-repeat.js.map +1 -0
- package/dist/families/term-policy/recommended-terms.js +87 -0
- package/dist/families/term-policy/recommended-terms.js.map +1 -0
- package/dist/families/term-policy/required-terms.js +32 -0
- package/dist/families/term-policy/required-terms.js.map +1 -0
- package/dist/families/words/data/prohibited-words.json +12 -0
- package/dist/families/words/data/simplicity-pairs.json +7 -0
- package/dist/families/words/hedge-stacking.js +43 -0
- package/dist/families/words/hedge-stacking.js.map +1 -0
- package/dist/families/words/llm-vocabulary.js +33 -0
- package/dist/families/words/llm-vocabulary.js.map +1 -0
- package/dist/families/words/prohibited-words.js +17 -0
- package/dist/families/words/prohibited-words.js.map +1 -0
- package/dist/families/words/simplicity.js +27 -0
- package/dist/families/words/simplicity.js.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/presets/everything.js +52 -0
- package/dist/presets/everything.js.map +1 -0
- package/dist/registries/metrics.js +15 -0
- package/dist/registries/metrics.js.map +1 -0
- package/dist/registries/orthography.js +15 -0
- package/dist/registries/orthography.js.map +1 -0
- package/dist/registries/phrases.js +19 -0
- package/dist/registries/phrases.js.map +1 -0
- package/dist/registries/semantic-thinness.js +5 -0
- package/dist/registries/semantic-thinness.js.map +1 -0
- package/dist/registries/syntactic-patterns/authority.js +5 -0
- package/dist/registries/syntactic-patterns/authority.js.map +1 -0
- package/dist/registries/syntactic-patterns/closers.js +11 -0
- package/dist/registries/syntactic-patterns/closers.js.map +1 -0
- package/dist/registries/syntactic-patterns/contrast.js +9 -0
- package/dist/registries/syntactic-patterns/contrast.js.map +1 -0
- package/dist/registries/syntactic-patterns/generalization.js +7 -0
- package/dist/registries/syntactic-patterns/generalization.js.map +1 -0
- package/dist/registries/syntactic-patterns/lead-ins.js +13 -0
- package/dist/registries/syntactic-patterns/lead-ins.js.map +1 -0
- package/dist/registries/syntactic-patterns/llm-artifacts.js +5 -0
- package/dist/registries/syntactic-patterns/llm-artifacts.js.map +1 -0
- package/dist/registries/syntactic-patterns/repetition.js +11 -0
- package/dist/registries/syntactic-patterns/repetition.js.map +1 -0
- package/dist/registries/syntactic-patterns.js +17 -0
- package/dist/registries/syntactic-patterns.js.map +1 -0
- package/dist/registries/term-policy.js +7 -0
- package/dist/registries/term-policy.js.map +1 -0
- package/dist/registries/words.js +11 -0
- package/dist/registries/words.js.map +1 -0
- package/dist/shared/matchers/phrases.js +71 -0
- package/dist/shared/matchers/phrases.js.map +1 -0
- package/dist/shared/matchers/prose-patterns.js +104 -0
- package/dist/shared/matchers/prose-patterns.js.map +1 -0
- package/dist/shared/text/document.js +18 -0
- package/dist/shared/text/document.js.map +1 -0
- package/dist/shared/text/normalize.js +30 -0
- package/dist/shared/text/normalize.js.map +1 -0
- package/dist/shared/text/quotes.js +20 -0
- package/dist/shared/text/quotes.js.map +1 -0
- package/dist/shared/text/sections.js +119 -0
- package/dist/shared/text/sections.js.map +1 -0
- package/dist/shared/text/sentences.js +79 -0
- package/dist/shared/text/sentences.js.map +1 -0
- package/dist/shared/text/tokens.js +18 -0
- package/dist/shared/text/tokens.js.map +1 -0
- package/dist/shared/text/traverse.js +10 -0
- package/dist/shared/text/traverse.js.map +1 -0
- package/dist/shared/text/whitespace.js +25 -0
- package/dist/shared/text/whitespace.js.map +1 -0
- package/package.json +115 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "body-emotion-shorthand",
|
|
3
|
+
"class": "body-emotion",
|
|
4
|
+
"purpose": "Catch stock body-feeling lines that translate emotion into generic chest, breath, heart, or limb sensations without naming the thought, choice, or concrete pressure.",
|
|
5
|
+
"templates": [
|
|
6
|
+
"{bodySubject} {feltVerb} {bodySensation}.",
|
|
7
|
+
"{bodySubject} {feltVerb} like {weightImage}.",
|
|
8
|
+
"{objectSubject} {feltVerb} like {weightImage}.",
|
|
9
|
+
"{breathSubject} caught in {throatTarget}."
|
|
10
|
+
],
|
|
11
|
+
"slots": {
|
|
12
|
+
"bodySubject": [
|
|
13
|
+
"her chest",
|
|
14
|
+
"his chest",
|
|
15
|
+
"my chest",
|
|
16
|
+
"their chest",
|
|
17
|
+
"cassia's chest",
|
|
18
|
+
"her paws",
|
|
19
|
+
"his paws",
|
|
20
|
+
"my paws",
|
|
21
|
+
"her heart",
|
|
22
|
+
"his heart",
|
|
23
|
+
"my heart"
|
|
24
|
+
],
|
|
25
|
+
"feltVerb": ["felt", "went"],
|
|
26
|
+
"bodySensation": [
|
|
27
|
+
"a sudden heavy thump",
|
|
28
|
+
"a heavy thump",
|
|
29
|
+
"heavy",
|
|
30
|
+
"cold",
|
|
31
|
+
"tight",
|
|
32
|
+
"small",
|
|
33
|
+
"hollow",
|
|
34
|
+
"strange"
|
|
35
|
+
],
|
|
36
|
+
"weightImage": ["a weight", "a stone", "a rock", "lead", "ice"],
|
|
37
|
+
"objectSubject": [
|
|
38
|
+
"the badge on her chest",
|
|
39
|
+
"the badge on his chest",
|
|
40
|
+
"the silver badge on her chest",
|
|
41
|
+
"the silver badge on his chest",
|
|
42
|
+
"the medal on her chest",
|
|
43
|
+
"the medal on his chest"
|
|
44
|
+
],
|
|
45
|
+
"breathSubject": [
|
|
46
|
+
"her breath",
|
|
47
|
+
"his breath",
|
|
48
|
+
"my breath",
|
|
49
|
+
"cassia's breath"
|
|
50
|
+
],
|
|
51
|
+
"throatTarget": ["her throat", "his throat", "my throat", "their throat"]
|
|
52
|
+
},
|
|
53
|
+
"rejectIf": [
|
|
54
|
+
"sentence names the concrete fear, thought, injury, illness, or physical cause",
|
|
55
|
+
"sentence includes a cause clause",
|
|
56
|
+
"sentence includes a concrete action that follows from the sensation",
|
|
57
|
+
"sentence is quoted dialogue"
|
|
58
|
+
],
|
|
59
|
+
"positiveExamples": [
|
|
60
|
+
"Her chest felt a sudden heavy thump.",
|
|
61
|
+
"Cassia's chest felt a heavy thump.",
|
|
62
|
+
"Her paws felt heavy.",
|
|
63
|
+
"The silver badge on her chest felt like a weight.",
|
|
64
|
+
"Cassia's breath caught in her throat.",
|
|
65
|
+
"Her heart went cold."
|
|
66
|
+
],
|
|
67
|
+
"negativeExamples": [
|
|
68
|
+
"Her chest hurt because the harness strap had twisted under her arm.",
|
|
69
|
+
"His breath caught when smoke reached the stairwell.",
|
|
70
|
+
"The badge on her chest weighed 42 grams.",
|
|
71
|
+
"Her paws felt cold after she stepped into the snow."
|
|
72
|
+
],
|
|
73
|
+
"notes": [
|
|
74
|
+
"This is a fiction-specific thinness signal.",
|
|
75
|
+
"It should stay separate from physical blocking because the bad move is translating emotion into stock body sensation."
|
|
76
|
+
]
|
|
77
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "body-knows",
|
|
3
|
+
"class": "wellness-abstraction",
|
|
4
|
+
"purpose": "Catch wellness-style body wisdom claims that make the body, mind, breath, or nervous system perform vague knowing or learning.",
|
|
5
|
+
"matchMode": "contains",
|
|
6
|
+
"maxTokens": 80,
|
|
7
|
+
"templates": [
|
|
8
|
+
"{wisdomSubject} {wisdomVerb}.",
|
|
9
|
+
"{wisdomSubject} {wisdomVerb} {genericObject}.",
|
|
10
|
+
"{wisdomSubject} {wisdomVerb} what {genericSubject} {thinPredicate}.",
|
|
11
|
+
"{wisdomSubject} {wisdomVerb} long before {mindSubject} {mindVerb}."
|
|
12
|
+
],
|
|
13
|
+
"slots": {
|
|
14
|
+
"wisdomSubject": [
|
|
15
|
+
"the body",
|
|
16
|
+
"your body",
|
|
17
|
+
"her body",
|
|
18
|
+
"his body",
|
|
19
|
+
"their body",
|
|
20
|
+
"the mind",
|
|
21
|
+
"your nervous system",
|
|
22
|
+
"the nervous system",
|
|
23
|
+
"the breath",
|
|
24
|
+
"your breath"
|
|
25
|
+
],
|
|
26
|
+
"wisdomVerb": [
|
|
27
|
+
"knows",
|
|
28
|
+
"knew",
|
|
29
|
+
"remembers",
|
|
30
|
+
"remembered",
|
|
31
|
+
"learns",
|
|
32
|
+
"learned",
|
|
33
|
+
"notices",
|
|
34
|
+
"noticed",
|
|
35
|
+
"softens",
|
|
36
|
+
"settles"
|
|
37
|
+
],
|
|
38
|
+
"genericObject": [
|
|
39
|
+
"the pattern",
|
|
40
|
+
"the truth",
|
|
41
|
+
"the difference",
|
|
42
|
+
"what matters",
|
|
43
|
+
"what it knows",
|
|
44
|
+
"what happens often"
|
|
45
|
+
],
|
|
46
|
+
"genericSubject": ["it", "we", "you", "the mind", "the heart"],
|
|
47
|
+
"thinPredicate": [
|
|
48
|
+
"needs",
|
|
49
|
+
"wants",
|
|
50
|
+
"knows",
|
|
51
|
+
"has been carrying",
|
|
52
|
+
"is ready to release"
|
|
53
|
+
],
|
|
54
|
+
"mindSubject": ["the mind", "your mind", "her mind", "his mind"],
|
|
55
|
+
"mindVerb": ["admits it", "understands", "catches up", "can explain it"]
|
|
56
|
+
},
|
|
57
|
+
"rejectIf": [
|
|
58
|
+
"sentence describes a concrete physiological symptom",
|
|
59
|
+
"sentence names a medical condition or measurable body response",
|
|
60
|
+
"sentence gives a concrete training or rehab instruction"
|
|
61
|
+
],
|
|
62
|
+
"positiveExamples": [
|
|
63
|
+
"The body knows what it knows.",
|
|
64
|
+
"The body learns the pattern.",
|
|
65
|
+
"The body notices what happens often.",
|
|
66
|
+
"The nervous system knows when it is time to change.",
|
|
67
|
+
"The breath remembers the truth.",
|
|
68
|
+
"The body knows the difference long before the mind admits it."
|
|
69
|
+
],
|
|
70
|
+
"negativeExamples": [
|
|
71
|
+
"The body knows it is dehydrated when urine output drops.",
|
|
72
|
+
"The nervous system learns the reflex after repeated training trials.",
|
|
73
|
+
"The breath settles after Cassia counts four slow steps.",
|
|
74
|
+
"Her body noticed the cold stone under her paws."
|
|
75
|
+
],
|
|
76
|
+
"notes": [
|
|
77
|
+
"This is persona-specific: it targets wellness slop and should not be used as a general physiology rule.",
|
|
78
|
+
"Concrete physiological or training contexts should be rejected."
|
|
79
|
+
]
|
|
80
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "deictic-summary",
|
|
3
|
+
"class": "deictic-summary",
|
|
4
|
+
"purpose": "Catch deictic summary pronouncements that point at a supposed lesson, truth, promise, or part without naming the concrete claim.",
|
|
5
|
+
"matchMode": "contains",
|
|
6
|
+
"maxTokens": 80,
|
|
7
|
+
"templates": [
|
|
8
|
+
"{deicticSubject} {linkingVerb} the {summaryNoun}.",
|
|
9
|
+
"{deicticSubject} {linkingVerb} the {evaluativeAdjective} {summaryNoun}.",
|
|
10
|
+
"{deicticSubject} {linkingVerb} the {summaryNoun} that {thinPredicate}.",
|
|
11
|
+
"{deicticSubject} {linkingVerb} the {summaryNoun} {genericAudience} {reactionVerb}.",
|
|
12
|
+
"{deicticSubject} {linkingVerb} where {abstractSubject} {abstractVerb}.",
|
|
13
|
+
"{deicticSubject} {linkingVerb} how {abstractSubject} {abstractVerb}."
|
|
14
|
+
],
|
|
15
|
+
"slots": {
|
|
16
|
+
"deicticSubject": ["that", "this", "it"],
|
|
17
|
+
"linkingVerb": ["is", "was"],
|
|
18
|
+
"evaluativeAdjective": [
|
|
19
|
+
"real",
|
|
20
|
+
"strange",
|
|
21
|
+
"deeper",
|
|
22
|
+
"hard",
|
|
23
|
+
"quiet",
|
|
24
|
+
"simple",
|
|
25
|
+
"honest",
|
|
26
|
+
"actual",
|
|
27
|
+
"central"
|
|
28
|
+
],
|
|
29
|
+
"summaryNoun": [
|
|
30
|
+
"part",
|
|
31
|
+
"promise",
|
|
32
|
+
"truth",
|
|
33
|
+
"lesson",
|
|
34
|
+
"point",
|
|
35
|
+
"reward",
|
|
36
|
+
"nature",
|
|
37
|
+
"invitation",
|
|
38
|
+
"shift",
|
|
39
|
+
"work"
|
|
40
|
+
],
|
|
41
|
+
"genericAudience": [
|
|
42
|
+
"nobody",
|
|
43
|
+
"people",
|
|
44
|
+
"fans",
|
|
45
|
+
"everyone",
|
|
46
|
+
"most people",
|
|
47
|
+
"teams",
|
|
48
|
+
"leaders"
|
|
49
|
+
],
|
|
50
|
+
"reactionVerb": [
|
|
51
|
+
"wants to hear",
|
|
52
|
+
"love",
|
|
53
|
+
"loves",
|
|
54
|
+
"miss",
|
|
55
|
+
"misses",
|
|
56
|
+
"forget",
|
|
57
|
+
"forgets",
|
|
58
|
+
"avoid",
|
|
59
|
+
"avoids"
|
|
60
|
+
],
|
|
61
|
+
"thinPredicate": [
|
|
62
|
+
"matters",
|
|
63
|
+
"changes everything",
|
|
64
|
+
"makes the difference",
|
|
65
|
+
"survives",
|
|
66
|
+
"does the work"
|
|
67
|
+
],
|
|
68
|
+
"abstractSubject": [
|
|
69
|
+
"progress",
|
|
70
|
+
"trust",
|
|
71
|
+
"clarity",
|
|
72
|
+
"the work",
|
|
73
|
+
"the shift",
|
|
74
|
+
"the lesson",
|
|
75
|
+
"the story"
|
|
76
|
+
],
|
|
77
|
+
"abstractVerb": [
|
|
78
|
+
"lives",
|
|
79
|
+
"starts",
|
|
80
|
+
"begins",
|
|
81
|
+
"happens",
|
|
82
|
+
"changes",
|
|
83
|
+
"settles"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
"rejectIf": [
|
|
87
|
+
"sentence names the concrete lesson, truth, or decision",
|
|
88
|
+
"sentence is a literal pointer to a visible object",
|
|
89
|
+
"sentence includes a concrete result with a named actor and action"
|
|
90
|
+
],
|
|
91
|
+
"positiveExamples": [
|
|
92
|
+
"That is the real promise.",
|
|
93
|
+
"That is the lesson, and it applies more widely than people think.",
|
|
94
|
+
"This is the part fans love.",
|
|
95
|
+
"That is where progress lives.",
|
|
96
|
+
"That is how real progress usually looks.",
|
|
97
|
+
"It is the simple truth."
|
|
98
|
+
],
|
|
99
|
+
"negativeExamples": [
|
|
100
|
+
"This is the screw that holds the hinge plate in place.",
|
|
101
|
+
"That is the lesson: replace the expired signing key before Friday.",
|
|
102
|
+
"It was the part Marius ordered from the blacksmith.",
|
|
103
|
+
"This is where Cassia found the brass gear under the wagon wheel."
|
|
104
|
+
],
|
|
105
|
+
"notes": [
|
|
106
|
+
"This pattern is intentionally contains-mode because generated prose embeds this frame inside longer sentences.",
|
|
107
|
+
"It overlaps with generic-signposting but targets deictic summary language specifically."
|
|
108
|
+
]
|
|
109
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "empty-atmosphere-shift",
|
|
3
|
+
"class": "atmosphere-shift",
|
|
4
|
+
"purpose": "Catch atmosphere-shift lines that announce mood change in a place without concrete cause, action, or sensory detail.",
|
|
5
|
+
"templates": [
|
|
6
|
+
"{placeSubject} {feltVerb} {weakAdverb} {atmosphereState}.",
|
|
7
|
+
"{placeSubject} {feltVerb} {atmosphereState} {weakModifier}.",
|
|
8
|
+
"{atmosphereSubject} {feltVerb} {atmosphereState} {weakModifier}.",
|
|
9
|
+
"{atmosphereSubject} {feltVerb} {weakAdverb} {atmosphereState}."
|
|
10
|
+
],
|
|
11
|
+
"slots": {
|
|
12
|
+
"placeSubject": [
|
|
13
|
+
"the yard",
|
|
14
|
+
"the room",
|
|
15
|
+
"the house",
|
|
16
|
+
"the street",
|
|
17
|
+
"the compound",
|
|
18
|
+
"the kitchen",
|
|
19
|
+
"the workshop",
|
|
20
|
+
"the courtyard",
|
|
21
|
+
"the market"
|
|
22
|
+
],
|
|
23
|
+
"atmosphereSubject": [
|
|
24
|
+
"the air",
|
|
25
|
+
"the quiet",
|
|
26
|
+
"the silence",
|
|
27
|
+
"the moment",
|
|
28
|
+
"the mood",
|
|
29
|
+
"the rooms",
|
|
30
|
+
"everything"
|
|
31
|
+
],
|
|
32
|
+
"feltVerb": ["felt", "went", "became", "turned", "seemed"],
|
|
33
|
+
"weakAdverb": ["suddenly", "just", "so", "somehow"],
|
|
34
|
+
"atmosphereState": [
|
|
35
|
+
"cold",
|
|
36
|
+
"quiet",
|
|
37
|
+
"still",
|
|
38
|
+
"empty",
|
|
39
|
+
"different",
|
|
40
|
+
"heavy",
|
|
41
|
+
"strange",
|
|
42
|
+
"wrong"
|
|
43
|
+
],
|
|
44
|
+
"weakModifier": ["now", "again", "after that", "for a moment"]
|
|
45
|
+
},
|
|
46
|
+
"rejectIf": [
|
|
47
|
+
"sentence includes a concrete sound, object, weather condition, or event that explains the atmosphere",
|
|
48
|
+
"sentence includes a cause clause",
|
|
49
|
+
"sentence includes a measurable environmental detail",
|
|
50
|
+
"sentence is quoted dialogue"
|
|
51
|
+
],
|
|
52
|
+
"positiveExamples": [
|
|
53
|
+
"The yard felt suddenly cold.",
|
|
54
|
+
"The air felt different now.",
|
|
55
|
+
"Everything seemed quiet now.",
|
|
56
|
+
"The rooms felt just empty.",
|
|
57
|
+
"The moment felt heavy again.",
|
|
58
|
+
"The silence became suddenly strange."
|
|
59
|
+
],
|
|
60
|
+
"negativeExamples": [
|
|
61
|
+
"The yard felt cold because the sun dropped behind the wall.",
|
|
62
|
+
"The air felt different after the spice smoke reached the gate.",
|
|
63
|
+
"The workshop was quiet enough to hear the loose hinge scrape.",
|
|
64
|
+
"The room was empty except for two brass gears on the bench."
|
|
65
|
+
],
|
|
66
|
+
"notes": [
|
|
67
|
+
"This overlaps with empty-scene-state but is narrower: it targets announced mood shifts.",
|
|
68
|
+
"The fixture phrase 'despite the climbing sun' is intentionally not matched until we add phrase-tail templates."
|
|
69
|
+
]
|
|
70
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "empty-emotional-weather",
|
|
3
|
+
"class": "emotional-weather",
|
|
4
|
+
"purpose": "Catch atmospheric abstract nouns that move through a scene without concrete source, action, or consequence.",
|
|
5
|
+
"templates": [
|
|
6
|
+
"{atmosphereSubject} {weatherVerb} {placePhrase}.",
|
|
7
|
+
"{atmosphereSubject} {weatherVerb} between {humanGroup}.",
|
|
8
|
+
"{atmosphereSubject} {weatherVerb} in {placeNoun}.",
|
|
9
|
+
"{atmosphereSubject} {weatherVerb} over {placeNoun}."
|
|
10
|
+
],
|
|
11
|
+
"slots": {
|
|
12
|
+
"atmosphereSubject": [
|
|
13
|
+
"silence",
|
|
14
|
+
"a silence",
|
|
15
|
+
"quiet",
|
|
16
|
+
"a quiet",
|
|
17
|
+
"tension",
|
|
18
|
+
"a tension",
|
|
19
|
+
"stillness",
|
|
20
|
+
"a stillness",
|
|
21
|
+
"pressure",
|
|
22
|
+
"a pressure",
|
|
23
|
+
"weight",
|
|
24
|
+
"a weight",
|
|
25
|
+
"unease",
|
|
26
|
+
"an unease",
|
|
27
|
+
"distance",
|
|
28
|
+
"a distance",
|
|
29
|
+
"calm",
|
|
30
|
+
"a calm",
|
|
31
|
+
"heaviness",
|
|
32
|
+
"a heaviness"
|
|
33
|
+
],
|
|
34
|
+
"weatherVerb": [
|
|
35
|
+
"sat",
|
|
36
|
+
"hung",
|
|
37
|
+
"settled",
|
|
38
|
+
"filled",
|
|
39
|
+
"moved",
|
|
40
|
+
"spread",
|
|
41
|
+
"stretched",
|
|
42
|
+
"landed",
|
|
43
|
+
"fell",
|
|
44
|
+
"returned",
|
|
45
|
+
"remained"
|
|
46
|
+
],
|
|
47
|
+
"placePhrase": [
|
|
48
|
+
"in the room",
|
|
49
|
+
"over the room",
|
|
50
|
+
"between them",
|
|
51
|
+
"around them",
|
|
52
|
+
"in the air",
|
|
53
|
+
"over the table",
|
|
54
|
+
"across the room",
|
|
55
|
+
"inside the house",
|
|
56
|
+
"through the hallway"
|
|
57
|
+
],
|
|
58
|
+
"placeNoun": [
|
|
59
|
+
"the room",
|
|
60
|
+
"the house",
|
|
61
|
+
"the hallway",
|
|
62
|
+
"the kitchen",
|
|
63
|
+
"the office",
|
|
64
|
+
"the meeting room",
|
|
65
|
+
"the air",
|
|
66
|
+
"the table",
|
|
67
|
+
"the space",
|
|
68
|
+
"the doorway"
|
|
69
|
+
],
|
|
70
|
+
"humanGroup": [
|
|
71
|
+
"them",
|
|
72
|
+
"the two of them",
|
|
73
|
+
"the group",
|
|
74
|
+
"the family",
|
|
75
|
+
"the team",
|
|
76
|
+
"the couple",
|
|
77
|
+
"the room"
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
"rejectIf": [
|
|
81
|
+
"sentence names the event or person that caused the atmosphere",
|
|
82
|
+
"sentence includes concrete physical source",
|
|
83
|
+
"sentence continues into a concrete action or consequence",
|
|
84
|
+
"sentence is part of intentional literary prose"
|
|
85
|
+
],
|
|
86
|
+
"positiveExamples": [
|
|
87
|
+
"Silence sat between them.",
|
|
88
|
+
"A quiet tension settled over the room.",
|
|
89
|
+
"A weight hung in the air.",
|
|
90
|
+
"Stillness filled the hallway.",
|
|
91
|
+
"Unease moved through the room.",
|
|
92
|
+
"A heaviness settled between them."
|
|
93
|
+
],
|
|
94
|
+
"negativeExamples": [
|
|
95
|
+
"Silence followed the judge's warning.",
|
|
96
|
+
"A pressure drop in the pipe triggered the alarm.",
|
|
97
|
+
"The weight hung from the ceiling bracket.",
|
|
98
|
+
"Tension rose after the monitor showed a falling oxygen level."
|
|
99
|
+
],
|
|
100
|
+
"notes": [
|
|
101
|
+
"This is high risk for fiction and should be kept narrow.",
|
|
102
|
+
"Concrete source rejection is mandatory."
|
|
103
|
+
]
|
|
104
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "empty-scene-state",
|
|
3
|
+
"class": "scene-state",
|
|
4
|
+
"purpose": "Catch short scene-setting lines that name a place or scene element and assign an empty state without action, cause, or concrete detail.",
|
|
5
|
+
"templates": [
|
|
6
|
+
"{placeSubject} {linkingVerb} {thinState}.",
|
|
7
|
+
"{placeSubject} {linkingVerb} {thinState} {weakModifier}.",
|
|
8
|
+
"{placeSubject} {linkingVerb} {weakBeforeState} {thinState}.",
|
|
9
|
+
"{placeSubject} went {thinState}.",
|
|
10
|
+
"{sceneElement} {linkingVerb} {thinState}.",
|
|
11
|
+
"{sceneElement} {linkingVerb} {thinState} {weakModifier}.",
|
|
12
|
+
"{sceneElement} {linkingVerb} {weakBeforeState} {thinState}."
|
|
13
|
+
],
|
|
14
|
+
"slots": {
|
|
15
|
+
"placeSubject": [
|
|
16
|
+
"the room",
|
|
17
|
+
"the yard",
|
|
18
|
+
"the house",
|
|
19
|
+
"the hallway",
|
|
20
|
+
"the kitchen",
|
|
21
|
+
"the office",
|
|
22
|
+
"the classroom",
|
|
23
|
+
"the street",
|
|
24
|
+
"the porch",
|
|
25
|
+
"the table",
|
|
26
|
+
"the stairwell",
|
|
27
|
+
"the lobby",
|
|
28
|
+
"the corridor",
|
|
29
|
+
"the bedroom",
|
|
30
|
+
"the car",
|
|
31
|
+
"the bus stop",
|
|
32
|
+
"the platform",
|
|
33
|
+
"the meeting room",
|
|
34
|
+
"the waiting room",
|
|
35
|
+
"the doorway",
|
|
36
|
+
"the apartment",
|
|
37
|
+
"the studio",
|
|
38
|
+
"the rooms",
|
|
39
|
+
"everything"
|
|
40
|
+
],
|
|
41
|
+
"sceneElement": [
|
|
42
|
+
"the air",
|
|
43
|
+
"the silence",
|
|
44
|
+
"the space",
|
|
45
|
+
"the light",
|
|
46
|
+
"the morning",
|
|
47
|
+
"the afternoon",
|
|
48
|
+
"the evening",
|
|
49
|
+
"the moment",
|
|
50
|
+
"the room",
|
|
51
|
+
"the scene",
|
|
52
|
+
"the atmosphere",
|
|
53
|
+
"the quiet"
|
|
54
|
+
],
|
|
55
|
+
"linkingVerb": [
|
|
56
|
+
"was",
|
|
57
|
+
"were",
|
|
58
|
+
"felt",
|
|
59
|
+
"seemed",
|
|
60
|
+
"looked",
|
|
61
|
+
"remained",
|
|
62
|
+
"stayed",
|
|
63
|
+
"became",
|
|
64
|
+
"turned"
|
|
65
|
+
],
|
|
66
|
+
"thinState": [
|
|
67
|
+
"empty",
|
|
68
|
+
"quiet",
|
|
69
|
+
"still",
|
|
70
|
+
"silent",
|
|
71
|
+
"heavy",
|
|
72
|
+
"cold",
|
|
73
|
+
"dark",
|
|
74
|
+
"dim",
|
|
75
|
+
"hushed",
|
|
76
|
+
"bare",
|
|
77
|
+
"blank",
|
|
78
|
+
"calm",
|
|
79
|
+
"tense",
|
|
80
|
+
"strange",
|
|
81
|
+
"different",
|
|
82
|
+
"unchanged",
|
|
83
|
+
"small",
|
|
84
|
+
"distant"
|
|
85
|
+
],
|
|
86
|
+
"weakBeforeState": ["just", "suddenly", "so"],
|
|
87
|
+
"weakModifier": ["again", "now", "somehow", "for once", "after that"]
|
|
88
|
+
},
|
|
89
|
+
"rejectIf": [
|
|
90
|
+
"sentence has a cause clause",
|
|
91
|
+
"sentence has a purpose clause",
|
|
92
|
+
"sentence has a concrete sound, object, measurement, name, date, or event detail",
|
|
93
|
+
"thin state is followed by a concrete explanation"
|
|
94
|
+
],
|
|
95
|
+
"positiveExamples": [
|
|
96
|
+
"The yard was empty.",
|
|
97
|
+
"The room was quiet.",
|
|
98
|
+
"The house felt still.",
|
|
99
|
+
"The air felt heavy.",
|
|
100
|
+
"The hallway stayed silent.",
|
|
101
|
+
"The moment was strange.",
|
|
102
|
+
"The yard went quiet.",
|
|
103
|
+
"The rooms were just empty.",
|
|
104
|
+
"The air felt different now."
|
|
105
|
+
],
|
|
106
|
+
"negativeExamples": [
|
|
107
|
+
"The yard was empty because the evacuation order had cleared the neighborhood.",
|
|
108
|
+
"The room was quiet enough for the audio recording to capture the fan noise.",
|
|
109
|
+
"The house felt still after the compressor shut off.",
|
|
110
|
+
"The hallway was empty except for two wet umbrellas by the elevator.",
|
|
111
|
+
"The rooms were empty after the movers finished the apartment inventory."
|
|
112
|
+
],
|
|
113
|
+
"notes": [
|
|
114
|
+
"High precision depends on short sentence length and rejection gates.",
|
|
115
|
+
"Fiction can use this legitimately, so active rule severity must be decided later."
|
|
116
|
+
]
|
|
117
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "empty-scene-transition",
|
|
3
|
+
"class": "transition-change",
|
|
4
|
+
"purpose": "Catch generic transition lines that declare change, passage, or motion without naming what changed or why.",
|
|
5
|
+
"templates": [
|
|
6
|
+
"{genericSubject} {changeVerb}.",
|
|
7
|
+
"{genericSubject} {changeVerb} {weakModifier}.",
|
|
8
|
+
"{genericSubject} {changeVerb} {genericObject}.",
|
|
9
|
+
"{genericSubject} {passageVerb}."
|
|
10
|
+
],
|
|
11
|
+
"slots": {
|
|
12
|
+
"genericSubject": [
|
|
13
|
+
"it",
|
|
14
|
+
"everything",
|
|
15
|
+
"something",
|
|
16
|
+
"things",
|
|
17
|
+
"the moment",
|
|
18
|
+
"the scene",
|
|
19
|
+
"the room",
|
|
20
|
+
"the day",
|
|
21
|
+
"the night",
|
|
22
|
+
"the conversation",
|
|
23
|
+
"the energy",
|
|
24
|
+
"the mood",
|
|
25
|
+
"the air",
|
|
26
|
+
"the silence",
|
|
27
|
+
"the feeling",
|
|
28
|
+
"the dynamic",
|
|
29
|
+
"the situation",
|
|
30
|
+
"the story",
|
|
31
|
+
"the work"
|
|
32
|
+
],
|
|
33
|
+
"changeVerb": [
|
|
34
|
+
"changed",
|
|
35
|
+
"shifted",
|
|
36
|
+
"moved",
|
|
37
|
+
"turned",
|
|
38
|
+
"tilted",
|
|
39
|
+
"settled",
|
|
40
|
+
"opened",
|
|
41
|
+
"broke",
|
|
42
|
+
"landed",
|
|
43
|
+
"clicked",
|
|
44
|
+
"happened"
|
|
45
|
+
],
|
|
46
|
+
"passageVerb": [
|
|
47
|
+
"passed",
|
|
48
|
+
"faded",
|
|
49
|
+
"ended",
|
|
50
|
+
"began",
|
|
51
|
+
"started",
|
|
52
|
+
"continued",
|
|
53
|
+
"returned"
|
|
54
|
+
],
|
|
55
|
+
"weakModifier": [
|
|
56
|
+
"after that",
|
|
57
|
+
"from there",
|
|
58
|
+
"again",
|
|
59
|
+
"then",
|
|
60
|
+
"somehow",
|
|
61
|
+
"a little",
|
|
62
|
+
"in that moment"
|
|
63
|
+
],
|
|
64
|
+
"genericObject": [
|
|
65
|
+
"everything",
|
|
66
|
+
"the scene",
|
|
67
|
+
"the room",
|
|
68
|
+
"the conversation",
|
|
69
|
+
"the day",
|
|
70
|
+
"the moment",
|
|
71
|
+
"the work"
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"rejectIf": [
|
|
75
|
+
"sentence has a concrete cause clause",
|
|
76
|
+
"sentence has a concrete result clause",
|
|
77
|
+
"sentence names a specific rule, event, object, person, date, number, or action that explains the change",
|
|
78
|
+
"sentence is longer than the short transition window"
|
|
79
|
+
],
|
|
80
|
+
"positiveExamples": [
|
|
81
|
+
"Everything shifted.",
|
|
82
|
+
"It changed everything.",
|
|
83
|
+
"The moment passed.",
|
|
84
|
+
"The room changed after that.",
|
|
85
|
+
"The conversation shifted.",
|
|
86
|
+
"Things changed from there."
|
|
87
|
+
],
|
|
88
|
+
"negativeExamples": [
|
|
89
|
+
"Everything shifted after the new tax rule took effect.",
|
|
90
|
+
"The scene changed when the camera cut to the exterior courtyard.",
|
|
91
|
+
"The conversation shifted after Maria named the missing budget line.",
|
|
92
|
+
"The room changed when the lights failed at 8:13."
|
|
93
|
+
],
|
|
94
|
+
"notes": [
|
|
95
|
+
"The rejection gates are more important than the positive slot lists.",
|
|
96
|
+
"This is the safest first semantic-thinness template."
|
|
97
|
+
]
|
|
98
|
+
}
|