@cratis/pi 3.3.1 → 4.0.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/package/corpus/skills/cratis-social-feed-post/SKILL.md +35 -1
- package/package/corpus/skills/cratis-social-feed-post/verification.json +5 -1
- package/package/corpus/skills/cratis-writing-voice-and-cadence/SKILL.md +19 -0
- package/package/corpus/skills/cratis-writing-voice-and-cadence/verification.json +5 -1
- package/package.json +1 -1
|
@@ -42,6 +42,38 @@ a trade rather than a free improvement.
|
|
|
42
42
|
Check the opening by reading only the first three lines and asking whether they are worth
|
|
43
43
|
expanding. If the answer depends on the fourth line, the opening is wrong.
|
|
44
44
|
|
|
45
|
+
## Sound like a person talking
|
|
46
|
+
|
|
47
|
+
A post that reads as generated gets scrolled past as generated, however accurate it is. The
|
|
48
|
+
fix is not a smoother sentence. It is writing the way someone who built the thing would
|
|
49
|
+
explain it to a colleague over coffee.
|
|
50
|
+
|
|
51
|
+
- **Open with something that happened.** What shipped, a real number, what you found this
|
|
52
|
+
week. A concrete, checkable event reads as a person reporting. An aphorism about the domain
|
|
53
|
+
("A skill is just text…") reads as a slogan, however clever it is.
|
|
54
|
+
- **Talk, don't announce.** Contractions, a sentence that starts with "So" or "And", a
|
|
55
|
+
parenthetical aside, a question answered straight away ("Why bother? Because…"). Use them
|
|
56
|
+
the way speech does, now and then, not as a new pattern on every line.
|
|
57
|
+
- **Show the default, then the better way.** Name what the reader, or their coding agent,
|
|
58
|
+
writes today in concrete terms, then the shape you are offering, with real identifiers. A
|
|
59
|
+
before-and-after persuades; adjectives do not.
|
|
60
|
+
- **Sell with specifics.** Enthusiasm is welcome and a list of real capabilities is
|
|
61
|
+
persuasive. What persuades is the command, the count, and the thing the reader can do
|
|
62
|
+
tomorrow, not "powerful", "seamless" or "game-changing".
|
|
63
|
+
- **Say why in the words you would use out loud.** A reason with a stake ("we don't want the
|
|
64
|
+
good version of that to be a paid add-on") beats a principle stated in the abstract.
|
|
65
|
+
- **Put a limit where it applies.** "On macOS and Linux, the installer…" carries the limit
|
|
66
|
+
inside the claim. A closing paragraph labeled "One honest limit:" reads as a disclaimer a
|
|
67
|
+
reviewer bolted on.
|
|
68
|
+
- **Keep the review out of the copy.** Evidence, verification and approval language belongs
|
|
69
|
+
in the review record. A qualifier that protects the writer instead of informing the reader
|
|
70
|
+
makes the post read as noncommittal. Keep every qualification that is true and would
|
|
71
|
+
change what the reader does; drop the rest.
|
|
72
|
+
- **Stop when you are done.** A plain next step ("Links in the comments") ends a post better
|
|
73
|
+
than a tidy closing maxim.
|
|
74
|
+
|
|
75
|
+
The tells to remove in review are listed in the **cratis-writing-voice-and-cadence** skill.
|
|
76
|
+
|
|
45
77
|
## Never use Unicode pseudo-formatting
|
|
46
78
|
|
|
47
79
|
Third-party tools offer pseudo-bold and pseudo-italic built from Mathematical Alphanumeric
|
|
@@ -66,7 +98,9 @@ said first. A point that needs visual weight belongs in an image with its own al
|
|
|
66
98
|
|
|
67
99
|
## Structure that survives a phone
|
|
68
100
|
|
|
69
|
-
- One
|
|
101
|
+
- One thread per post. A feed reader will not assemble two arguments. An announcement may
|
|
102
|
+
still list what shipped as a plain list of short fragments inside that thread, with no
|
|
103
|
+
bolded labels and no slogan per item.
|
|
70
104
|
- Short paragraphs, one to three sentences, and visibly different from each other in length.
|
|
71
105
|
A column of identically sized blocks reads as a generated template before it reads as an
|
|
72
106
|
argument.
|
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
{ "kind": "skill-contains", "value": "A brief opening sentence is a hook doing its job" },
|
|
10
10
|
{ "kind": "skill-contains", "value": "No external link in the body" },
|
|
11
11
|
{ "kind": "skill-contains", "value": "No engagement bait" },
|
|
12
|
-
{ "kind": "skill-contains", "value": "unofficial approximations" }
|
|
12
|
+
{ "kind": "skill-contains", "value": "unofficial approximations" },
|
|
13
|
+
{ "kind": "skill-contains", "value": "Sound like a person talking" },
|
|
14
|
+
{ "kind": "skill-contains", "value": "Open with something that happened" },
|
|
15
|
+
{ "kind": "skill-contains", "value": "Put a limit where it applies" },
|
|
16
|
+
{ "kind": "skill-contains", "value": "Keep the review out of the copy" }
|
|
13
17
|
]
|
|
14
18
|
}
|
|
@@ -27,6 +27,11 @@ recurrence.
|
|
|
27
27
|
| **"rather than"** | The same correction carried by a different connective |
|
|
28
28
|
| **Em-dash pivot** | The dash used to swing into a closing clause |
|
|
29
29
|
| **"That is what X is for"** | A pointer sentence standing in for an explanation |
|
|
30
|
+
| **Punchline fragment** | A two- or three-word sentence landing a slogan: "They run." |
|
|
31
|
+
| **Signpost pair** | "That's the X. Here's the Y." Announcing the structure instead of having one |
|
|
32
|
+
| **Labeled caveat** | "One honest limit:" A limitation parked in its own closing paragraph |
|
|
33
|
+
| **Aphoristic close** | A tidy maxim as the last line, restating what the piece already said |
|
|
34
|
+
| **Reflexive triplet** | Three parallel items where the thought had one or two |
|
|
30
35
|
|
|
31
36
|
To measure rather than guess, count them. Searching for `, not a`, `; ` between two clauses,
|
|
32
37
|
`rather than`, and an em-dash followed by a short closing clause takes a few minutes across a
|
|
@@ -48,9 +53,23 @@ Look at ten pieces together, not one at a time:
|
|
|
48
53
|
assertion — "A screen that needs…", "A registration test can…" — is one move. Alternate it
|
|
49
54
|
with a question, a direct address, a concrete moment, or a number.
|
|
50
55
|
|
|
56
|
+
## Hedging that protects the writer
|
|
57
|
+
|
|
58
|
+
The other common complaint is "wishy-washy": copy so qualified that it never commits to
|
|
59
|
+
anything. It usually comes from review language leaking into the material: evidence,
|
|
60
|
+
verification and approval wording that belongs in the review record, and qualifiers that
|
|
61
|
+
protect the writer without informing the reader.
|
|
62
|
+
|
|
63
|
+
The rule below protects every hedge that is true and would change what the reader does. It
|
|
64
|
+
does not protect review residue. Move the evidence to the review record, state the capability
|
|
65
|
+
plainly, and put a real limit inside the sentence it limits ("on macOS and Linux, …") instead
|
|
66
|
+
of in a separate disclaimer.
|
|
67
|
+
|
|
51
68
|
## Address somebody
|
|
52
69
|
|
|
53
70
|
- **Say "you".** Material that tells a reader what to do should address that reader.
|
|
71
|
+
- **A company account is a team talking.** Write "we", the way the people who built it would
|
|
72
|
+
say it, not the company name in the third person.
|
|
54
73
|
- **Attributed writing should sound attributed.** Prose published under a person's name and
|
|
55
74
|
written entirely in the impersonal third person reads as documentation wearing a byline.
|
|
56
75
|
Opinion, judgement and preference belong to the named author and are theirs to give.
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
{ "kind": "skill-contains", "value": "every hedging word" },
|
|
9
9
|
{ "kind": "skill-contains", "value": "First person is not a licence to invent" },
|
|
10
10
|
{ "kind": "skill-contains", "value": "Structural sameness is the more damaging half" },
|
|
11
|
-
{ "kind": "skill-contains", "value": "Rewrite a tranche, read it, and only then continue" }
|
|
11
|
+
{ "kind": "skill-contains", "value": "Rewrite a tranche, read it, and only then continue" },
|
|
12
|
+
{ "kind": "skill-contains", "value": "Punchline fragment" },
|
|
13
|
+
{ "kind": "skill-contains", "value": "Labeled caveat" },
|
|
14
|
+
{ "kind": "skill-contains", "value": "Hedging that protects the writer" },
|
|
15
|
+
{ "kind": "skill-contains", "value": "A company account is a team talking" }
|
|
12
16
|
]
|
|
13
17
|
}
|