write-skills 0.0.0-stage → 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/LICENSE +21 -0
- package/README.md +58 -2
- package/THIRD_PARTY_NOTICES.md +24 -0
- package/docs/BLOCKS.md +36 -0
- package/docs/EVALS.md +22 -0
- package/docs/RULES.md +236 -0
- package/package.json +24 -4
- package/shared/ste.md +82 -0
- package/skills/write-comments/SKILL.md +51 -0
- package/skills/write-comments/agents/openai.yaml +2 -0
- package/skills/write-comments/references/ste.md +82 -0
- package/skills/write-commit/SKILL.md +59 -0
- package/skills/write-commit/agents/openai.yaml +2 -0
- package/skills/write-commit/evals/evals.json +46 -0
- package/skills/write-commit/references/ste.md +82 -0
- package/skills/write-compact/SKILL.md +70 -0
- package/skills/write-compact/agents/openai.yaml +2 -0
- package/skills/write-compact/references/ste.md +82 -0
- package/skills/write-core/SKILL.md +119 -0
- package/skills/write-core/agents/openai.yaml +2 -0
- package/skills/write-core/references/ai-patterns.md +43 -0
- package/skills/write-core/references/profile.md +20 -0
- package/skills/write-core/references/ste.md +82 -0
- package/skills/write-docs/SKILL.md +83 -0
- package/skills/write-docs/agents/openai.yaml +2 -0
- package/skills/write-docs/references/agent-docs.md +77 -0
- package/skills/write-docs/references/docs-standard.md +103 -0
- package/skills/write-docs/references/ste.md +82 -0
- package/skills/write-jira/SKILL.md +75 -0
- package/skills/write-jira/agents/openai.yaml +2 -0
- package/skills/write-jira/evals/evals.json +44 -0
- package/skills/write-jira/references/ste.md +82 -0
- package/skills/write-longform/SKILL.md +74 -0
- package/skills/write-longform/agents/openai.yaml +2 -0
- package/skills/write-longform/references/ste.md +82 -0
- package/skills/write-pr/SKILL.md +63 -0
- package/skills/write-pr/agents/openai.yaml +2 -0
- package/skills/write-pr/evals/evals.json +45 -0
- package/skills/write-pr/references/ste.md +82 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: write-longform
|
|
3
|
+
description: >
|
|
4
|
+
Use on an explicit user request for a staged long-form writing mission:
|
|
5
|
+
collect raw material first, then build a long article or document from it
|
|
6
|
+
under one shared brief. Not for single-pass replies or edits.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Write longform
|
|
10
|
+
|
|
11
|
+
One mission, one brief, staged. Explore first. Exploit second. The user approves every stage.
|
|
12
|
+
|
|
13
|
+
## Stage 0: the shared brief
|
|
14
|
+
|
|
15
|
+
Write the brief before any material moves:
|
|
16
|
+
|
|
17
|
+
1. Topic and working title.
|
|
18
|
+
2. Reader and reader level.
|
|
19
|
+
3. Sources: the pile file, the repo, the links.
|
|
20
|
+
4. Output: the article path and the done condition.
|
|
21
|
+
|
|
22
|
+
Confirm the brief with the user. Revisit it when a stage changes the mission.
|
|
23
|
+
|
|
24
|
+
## Stage 1: explore
|
|
25
|
+
|
|
26
|
+
Interview the user. Mine fragments. No structure yet.
|
|
27
|
+
|
|
28
|
+
1. Ask questions until the material starts to repeat.
|
|
29
|
+
2. Capture every fragment the user gives, from the first message on.
|
|
30
|
+
3. Append fragments to the pile file. Separate them with a horizontal rule. One H1 working title at the top, nothing else.
|
|
31
|
+
4. A fragment is any text that might survive. Examples: a sharp sentence, a claim with a reason, a vignette, a half-thought, a quote.
|
|
32
|
+
5. A leading word names the idea the piece hangs on. It is the most valuable fragment. When the talk circles one idea, push to coin the word for it.
|
|
33
|
+
6. Re-read the pile from disk before every write. Append, never overwrite. Keep user edits.
|
|
34
|
+
|
|
35
|
+
## Stage 2: exploit
|
|
36
|
+
|
|
37
|
+
The pile is now read-only. Commit to a path. The user picks the mode:
|
|
38
|
+
|
|
39
|
+
- Shape mode: grow the article paragraph by paragraph.
|
|
40
|
+
- Beat mode: grow it as a journey of beats, one move at a time.
|
|
41
|
+
|
|
42
|
+
Both modes share the grounding rule:
|
|
43
|
+
|
|
44
|
+
1. List the concepts the reader brings. These are grounded from the start.
|
|
45
|
+
2. A block or a beat may lean only on grounded concepts.
|
|
46
|
+
3. A block or a beat grounds new concepts as it lands.
|
|
47
|
+
4. When the next move needs an ungrounded concept, that gap is the next move. Ground it first.
|
|
48
|
+
|
|
49
|
+
Shape loop:
|
|
50
|
+
|
|
51
|
+
1. Read the pile end to end.
|
|
52
|
+
2. Draft 2 or 3 candidate openings, each with a different thesis. The user picks one.
|
|
53
|
+
3. Ask "what does the reader need next?". Pull the answer from the pile.
|
|
54
|
+
4. Argue the format out loud: prose or list, table or text, quote or paraphrase, code block or inline code.
|
|
55
|
+
5. Append each agreed block to the article file at once.
|
|
56
|
+
|
|
57
|
+
Beat loop:
|
|
58
|
+
|
|
59
|
+
1. Offer 2 or 3 candidate beats reachable from the grounded set. Name what each beat grounds.
|
|
60
|
+
2. The user picks one. Write only that beat.
|
|
61
|
+
3. Re-read the article from disk. Offer the next set of beats.
|
|
62
|
+
|
|
63
|
+
End when the journey is complete, not when the pile is empty. Leftover fragments are normal.
|
|
64
|
+
|
|
65
|
+
## Stage rules
|
|
66
|
+
|
|
67
|
+
- The pile file is read-only in stage 2.
|
|
68
|
+
- Append each agreed block to the article file at once. Re-read from disk first.
|
|
69
|
+
- The user can ask to rewrite any block or revisit any beat. Edit that piece in place. Leave the rest alone.
|
|
70
|
+
- Stage 1 can restart when the pile runs dry in stage 2. Say what is missing, then go mine it.
|
|
71
|
+
|
|
72
|
+
## Output language
|
|
73
|
+
|
|
74
|
+
Write prose in ASD-STE100 Simplified Technical English. The rules live in `references/ste.md`.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Simplified Technical English rules
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Write prose that a non-native English reader understands at first read, without guessing. These rules follow the Issue 9 principles of ASD-STE100.
|
|
6
|
+
|
|
7
|
+
## Scope
|
|
8
|
+
|
|
9
|
+
Applies to chat replies, commit messages, PR descriptions, documentation, release notes, status updates, and bug reports.
|
|
10
|
+
Does not apply to code identifiers, product UI copy, quoted user text, file paths, and shell commands.
|
|
11
|
+
|
|
12
|
+
## Writing rules
|
|
13
|
+
|
|
14
|
+
1. Keep sentences short. Use 20 words or fewer in instructions. Use 25 words or fewer in descriptive text.
|
|
15
|
+
2. Write one instruction, or one topic, per sentence.
|
|
16
|
+
3. Use the active voice. Use the passive voice only when the agent is unknown. Name the agent when you know it.
|
|
17
|
+
4. Write one topic per paragraph. Use 6 sentences or fewer per paragraph.
|
|
18
|
+
5. Use simple verb forms only: simple present, simple past, simple future, imperative, infinitive.
|
|
19
|
+
6. Do not use the "-ing" form of a verb unless it is a technical noun.
|
|
20
|
+
7. Use each word with one meaning only.
|
|
21
|
+
8. Do not use multi-word nouns with more than three words.
|
|
22
|
+
9. Do not use idioms, slang, metaphors, jokes, or cultural references.
|
|
23
|
+
10. Do not use double negatives. Write one clear negative, or write the positive statement.
|
|
24
|
+
11. Do not use contractions. Keep the articles "the" and "a" in sentences.
|
|
25
|
+
12. Use the same word for the same thing. Do not alternate synonyms.
|
|
26
|
+
13. Use vertical lists for data or steps with more than two items.
|
|
27
|
+
14. In procedures, start each step with the command verb. Put warnings before the step.
|
|
28
|
+
15. Split complex text into more sentences. Do not omit the subject or the article to make a sentence shorter.
|
|
29
|
+
|
|
30
|
+
## Word guidance
|
|
31
|
+
|
|
32
|
+
- Prefer the shortest common word: "use", not "utilize". Write "start", not "initiate". Write "before", not "prior to".
|
|
33
|
+
- Treat the approved word list of STE, about 900 words, as the target vocabulary. Approximate it with common English words, one sense each.
|
|
34
|
+
- Technical terms are allowed. Define a technical term on first use.
|
|
35
|
+
- Do not invent a new term for a thing you already named.
|
|
36
|
+
|
|
37
|
+
## Examples
|
|
38
|
+
|
|
39
|
+
Commit message, before and after:
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
Before: "Refactored auth layer to leverage modern async patterns, kicking
|
|
43
|
+
off the long-overdue cleanup of the legacy session nightmare."
|
|
44
|
+
After: "Make the auth module use async functions. Remove the old session
|
|
45
|
+
code. Do not migrate session data. See ticket ABC-123."
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Status update, before and after:
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
Before: "We're currently experiencing some issues with the deployment
|
|
52
|
+
pipeline, which has been acting up since this morning."
|
|
53
|
+
After: "The deployment pipeline failed at 09:15. The build step gave error
|
|
54
|
+
E403. We are investigating the cause. The next update comes at 14:00."
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Bug report, before and after:
|
|
58
|
+
|
|
59
|
+
```text
|
|
60
|
+
Before: "Users can't seem to export their reports whenever the dataset is
|
|
61
|
+
particularly large. It just silently fails without any error."
|
|
62
|
+
After: "Export fails for datasets larger than 50000 rows. The app shows no
|
|
63
|
+
error. To reproduce: load the sample dataset, click Export, wait 60 seconds."
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Conflicts with other styles
|
|
67
|
+
|
|
68
|
+
When another active style conflicts with these rules, these rules win for prose. A brief style may shorten sentences further. It keeps every fact, negation, and number.
|
|
69
|
+
|
|
70
|
+
## Compliance check
|
|
71
|
+
|
|
72
|
+
- Are all sentences 25 words or fewer?
|
|
73
|
+
- Does each sentence give one instruction or one topic?
|
|
74
|
+
- Is the voice active, except where the agent is unknown?
|
|
75
|
+
- Are there no idioms, jokes, metaphors, contractions, or double negatives?
|
|
76
|
+
- Is every technical term defined on first use, and is each term stable?
|
|
77
|
+
|
|
78
|
+
## Sources
|
|
79
|
+
|
|
80
|
+
- https://asd-ste100.org/
|
|
81
|
+
- https://en.wikipedia.org/wiki/Simplified_Technical_English
|
|
82
|
+
- https://github.com/danyuchn/asd-ste100-skill
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: write-pr
|
|
3
|
+
description: >
|
|
4
|
+
Use when the agent writes a pull request title or description, or when the
|
|
5
|
+
user asks for PR text, a PR body, or a reviewable summary of a change.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Write PR
|
|
9
|
+
|
|
10
|
+
Write a briefing a reviewer reads in under one minute. Build it from the actual change and the evidence. Never invent evidence.
|
|
11
|
+
|
|
12
|
+
## Read first
|
|
13
|
+
|
|
14
|
+
1. Read the full diff of the branch.
|
|
15
|
+
2. Read the linked issue or ticket when one exists.
|
|
16
|
+
3. Read the test output, the build result, or the screenshots that show the change works.
|
|
17
|
+
4. Read recent PR titles in the repo. Match their format.
|
|
18
|
+
|
|
19
|
+
## Title
|
|
20
|
+
|
|
21
|
+
- One line, imperative, names the real change. Example: "Add rate limits to the login endpoint".
|
|
22
|
+
- Use the type prefix the repo already uses, when it uses one.
|
|
23
|
+
- Keep 72 characters or fewer.
|
|
24
|
+
|
|
25
|
+
## Body template
|
|
26
|
+
|
|
27
|
+
```markdown
|
|
28
|
+
## Summary
|
|
29
|
+
|
|
30
|
+
What the change does, and why, in 2 or 3 sentences.
|
|
31
|
+
Sketch: file tree, call tree, or diff sketch.
|
|
32
|
+
|
|
33
|
+
## Evidence
|
|
34
|
+
|
|
35
|
+
- Before: failing test, error output, or old behavior.
|
|
36
|
+
- After: passing test, output, or new behavior.
|
|
37
|
+
|
|
38
|
+
## Risk
|
|
39
|
+
|
|
40
|
+
- Door: one-way or two-way.
|
|
41
|
+
- Blast radius: the parts this change can break.
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Sketch rules
|
|
45
|
+
|
|
46
|
+
Pick the smallest view that makes the point. One sketch is enough for most changes.
|
|
47
|
+
|
|
48
|
+
- Show logic as short code or plain steps.
|
|
49
|
+
- Show a file layout change as a shallow tree with one-line comments.
|
|
50
|
+
- Show a control flow change as a diff of the call tree.
|
|
51
|
+
- Show a UI change with a screenshot when the environment allows it.
|
|
52
|
+
|
|
53
|
+
## Rules
|
|
54
|
+
|
|
55
|
+
- State what the change does first. State why second.
|
|
56
|
+
- Link long logs and dashboards. Do not paste them.
|
|
57
|
+
- Name the risk honestly. A one-way door gets a warning line in the summary.
|
|
58
|
+
- Write saved text at level 2 or higher. Never use a brief voice here.
|
|
59
|
+
- This block writes text only. It never opens, merges, comments on, or closes a pull request.
|
|
60
|
+
|
|
61
|
+
## Output language
|
|
62
|
+
|
|
63
|
+
Write prose in ASD-STE100 Simplified Technical English. The rules live in `references/ste.md`.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "write-pr",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Write the PR title and description. Branch diff: adds rate limiting to the login endpoint, 3 files, plus a test that floods the endpoint and passes under the limit. Evidence: the flood test fails on main and passes on the branch. The change is easy to roll back.",
|
|
7
|
+
"expected_output": "An imperative title of 72 characters or fewer naming the real change. A body with the Summary, Evidence, and Risk sections. Evidence shows the before and after states. Risk names a two-way door and the blast radius around the login path.",
|
|
8
|
+
"assertions": [
|
|
9
|
+
"Title is imperative and 72 characters or fewer",
|
|
10
|
+
"Body has Summary, Evidence, and Risk sections",
|
|
11
|
+
"Evidence shows before and after",
|
|
12
|
+
"Risk names the door type and the blast radius",
|
|
13
|
+
"No evidence that was not given is claimed",
|
|
14
|
+
"Long material is linked, not pasted"
|
|
15
|
+
],
|
|
16
|
+
"files": []
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": 2,
|
|
20
|
+
"prompt": "Write the PR title and description. Branch diff: splits the single transport.ts (900 lines) into transport/client.ts and transport/stream.ts with no behavior change. Call sites updated. Tests green on the branch.",
|
|
21
|
+
"expected_output": "A title for a pure refactor with no behavior change. The summary carries a small sketch of the new file layout as a shallow tree or diff sketch. Evidence cites the green test run. Risk is low: a two-way door with blast radius limited to import sites.",
|
|
22
|
+
"assertions": [
|
|
23
|
+
"Title names the refactor without overclaiming behavior change",
|
|
24
|
+
"Summary includes a file tree or diff sketch",
|
|
25
|
+
"Evidence cites the test run as given",
|
|
26
|
+
"Risk section present and honest",
|
|
27
|
+
"Sketch stays small, one view"
|
|
28
|
+
],
|
|
29
|
+
"files": []
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": 3,
|
|
33
|
+
"prompt": "Write the PR title and description. Branch diff: adds a data migration that merges the two user tables into one. The tests are written but have not been run yet, and there is no screenshot or log available.",
|
|
34
|
+
"expected_output": "The skill writes the PR text without inventing evidence. The Evidence section states plainly that the tests exist but were not run. A one-way door is named for the data migration, with a warning line in the summary.",
|
|
35
|
+
"assertions": [
|
|
36
|
+
"Does not fabricate test results or logs",
|
|
37
|
+
"Evidence section states the gap explicitly",
|
|
38
|
+
"One-way door named for the migration",
|
|
39
|
+
"Warning line present in the summary",
|
|
40
|
+
"Title still states the real change"
|
|
41
|
+
],
|
|
42
|
+
"files": []
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Simplified Technical English rules
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Write prose that a non-native English reader understands at first read, without guessing. These rules follow the Issue 9 principles of ASD-STE100.
|
|
6
|
+
|
|
7
|
+
## Scope
|
|
8
|
+
|
|
9
|
+
Applies to chat replies, commit messages, PR descriptions, documentation, release notes, status updates, and bug reports.
|
|
10
|
+
Does not apply to code identifiers, product UI copy, quoted user text, file paths, and shell commands.
|
|
11
|
+
|
|
12
|
+
## Writing rules
|
|
13
|
+
|
|
14
|
+
1. Keep sentences short. Use 20 words or fewer in instructions. Use 25 words or fewer in descriptive text.
|
|
15
|
+
2. Write one instruction, or one topic, per sentence.
|
|
16
|
+
3. Use the active voice. Use the passive voice only when the agent is unknown. Name the agent when you know it.
|
|
17
|
+
4. Write one topic per paragraph. Use 6 sentences or fewer per paragraph.
|
|
18
|
+
5. Use simple verb forms only: simple present, simple past, simple future, imperative, infinitive.
|
|
19
|
+
6. Do not use the "-ing" form of a verb unless it is a technical noun.
|
|
20
|
+
7. Use each word with one meaning only.
|
|
21
|
+
8. Do not use multi-word nouns with more than three words.
|
|
22
|
+
9. Do not use idioms, slang, metaphors, jokes, or cultural references.
|
|
23
|
+
10. Do not use double negatives. Write one clear negative, or write the positive statement.
|
|
24
|
+
11. Do not use contractions. Keep the articles "the" and "a" in sentences.
|
|
25
|
+
12. Use the same word for the same thing. Do not alternate synonyms.
|
|
26
|
+
13. Use vertical lists for data or steps with more than two items.
|
|
27
|
+
14. In procedures, start each step with the command verb. Put warnings before the step.
|
|
28
|
+
15. Split complex text into more sentences. Do not omit the subject or the article to make a sentence shorter.
|
|
29
|
+
|
|
30
|
+
## Word guidance
|
|
31
|
+
|
|
32
|
+
- Prefer the shortest common word: "use", not "utilize". Write "start", not "initiate". Write "before", not "prior to".
|
|
33
|
+
- Treat the approved word list of STE, about 900 words, as the target vocabulary. Approximate it with common English words, one sense each.
|
|
34
|
+
- Technical terms are allowed. Define a technical term on first use.
|
|
35
|
+
- Do not invent a new term for a thing you already named.
|
|
36
|
+
|
|
37
|
+
## Examples
|
|
38
|
+
|
|
39
|
+
Commit message, before and after:
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
Before: "Refactored auth layer to leverage modern async patterns, kicking
|
|
43
|
+
off the long-overdue cleanup of the legacy session nightmare."
|
|
44
|
+
After: "Make the auth module use async functions. Remove the old session
|
|
45
|
+
code. Do not migrate session data. See ticket ABC-123."
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Status update, before and after:
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
Before: "We're currently experiencing some issues with the deployment
|
|
52
|
+
pipeline, which has been acting up since this morning."
|
|
53
|
+
After: "The deployment pipeline failed at 09:15. The build step gave error
|
|
54
|
+
E403. We are investigating the cause. The next update comes at 14:00."
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Bug report, before and after:
|
|
58
|
+
|
|
59
|
+
```text
|
|
60
|
+
Before: "Users can't seem to export their reports whenever the dataset is
|
|
61
|
+
particularly large. It just silently fails without any error."
|
|
62
|
+
After: "Export fails for datasets larger than 50000 rows. The app shows no
|
|
63
|
+
error. To reproduce: load the sample dataset, click Export, wait 60 seconds."
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Conflicts with other styles
|
|
67
|
+
|
|
68
|
+
When another active style conflicts with these rules, these rules win for prose. A brief style may shorten sentences further. It keeps every fact, negation, and number.
|
|
69
|
+
|
|
70
|
+
## Compliance check
|
|
71
|
+
|
|
72
|
+
- Are all sentences 25 words or fewer?
|
|
73
|
+
- Does each sentence give one instruction or one topic?
|
|
74
|
+
- Is the voice active, except where the agent is unknown?
|
|
75
|
+
- Are there no idioms, jokes, metaphors, contractions, or double negatives?
|
|
76
|
+
- Is every technical term defined on first use, and is each term stable?
|
|
77
|
+
|
|
78
|
+
## Sources
|
|
79
|
+
|
|
80
|
+
- https://asd-ste100.org/
|
|
81
|
+
- https://en.wikipedia.org/wiki/Simplified_Technical_English
|
|
82
|
+
- https://github.com/danyuchn/asd-ste100-skill
|