nobrainer-tech-flow 0.0.0-stage → 2.4.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/.agents/plugins/marketplace.json +20 -0
- package/.claude-plugin/marketplace.json +18 -0
- package/.claude-plugin/plugin.json +21 -0
- package/.codex-plugin/plugin.json +47 -0
- package/.opencode/INSTALL.md +37 -0
- package/.opencode/plugins/nobrainer-tech-skills.js +66 -0
- package/.pi/extensions/nobrainer-tech-skills.js +64 -0
- package/AGENTS.md +204 -0
- package/CLAUDE.md +204 -0
- package/CONTRIBUTING.md +70 -0
- package/GEMINI.md +1 -0
- package/LICENSE +21 -0
- package/README.md +658 -2
- package/SECURITY.md +33 -0
- package/adapters/bootstrap.md +27 -0
- package/assets/nobrainer-tech-logo.svg +1 -0
- package/assets/nobrainer-workflow.svg +155 -0
- package/assets/plugin-logo.png +0 -0
- package/bin/nobrainer-tech-flow.mjs +48 -0
- package/docs/BOUNDED_RUNNER.md +60 -0
- package/docs/CHAT_PLUGINS.md +29 -0
- package/docs/COMPATIBILITY.md +371 -0
- package/docs/INSTALL.md +626 -0
- package/docs/MIGRATION_TO_FLOW.md +117 -0
- package/docs/NAMING.md +39 -0
- package/docs/PRIVACY.md +9 -0
- package/docs/SESSION_RESTART.md +70 -0
- package/docs/SKILL_CURATION.md +124 -0
- package/docs/TESTING.md +232 -0
- package/docs/TRY_IT.md +109 -0
- package/docs/releases/v1.0.0.md +81 -0
- package/docs/releases/v1.1.0.md +85 -0
- package/docs/releases/v1.10.0.md +34 -0
- package/docs/releases/v1.11.0-publication-readback.md +25 -0
- package/docs/releases/v1.11.0.md +42 -0
- package/docs/releases/v1.12.0.md +30 -0
- package/docs/releases/v1.13.0.md +46 -0
- package/docs/releases/v1.14.0.md +43 -0
- package/docs/releases/v1.14.1.md +21 -0
- package/docs/releases/v1.2.0.md +87 -0
- package/docs/releases/v1.2.1.md +92 -0
- package/docs/releases/v1.3.0-publication-readback.md +69 -0
- package/docs/releases/v1.3.0.md +66 -0
- package/docs/releases/v1.3.1-publication-readback.md +76 -0
- package/docs/releases/v1.3.1.md +59 -0
- package/docs/releases/v1.4.0-publication-readback.md +81 -0
- package/docs/releases/v1.4.0.md +43 -0
- package/docs/releases/v1.5.0-publication-readback.md +76 -0
- package/docs/releases/v1.5.0.md +54 -0
- package/docs/releases/v1.6.0.md +64 -0
- package/docs/releases/v1.6.1-publication-readback.md +53 -0
- package/docs/releases/v1.6.1.md +82 -0
- package/docs/releases/v1.7.0.md +42 -0
- package/docs/releases/v1.7.1-publication-readback.md +64 -0
- package/docs/releases/v1.7.1.md +49 -0
- package/docs/releases/v1.8.0.md +63 -0
- package/docs/releases/v1.8.1.md +32 -0
- package/docs/releases/v1.9.0.md +33 -0
- package/docs/releases/v2.0.0-candidate.md +28 -0
- package/docs/releases/v2.0.0.md +53 -0
- package/docs/releases/v2.0.1.md +135 -0
- package/docs/releases/v2.0.2.md +189 -0
- package/docs/releases/v2.1.0.md +64 -0
- package/docs/releases/v2.1.1.md +43 -0
- package/docs/releases/v2.2.0.md +64 -0
- package/docs/releases/v2.2.1.md +11 -0
- package/docs/releases/v2.3.0.md +97 -0
- package/docs/releases/v2.3.1.md +71 -0
- package/docs/releases/v2.3.2.md +242 -0
- package/docs/releases/v2.4.0.md +126 -0
- package/gemini-extension.json +6 -0
- package/hooks/claude-hooks.json +17 -0
- package/hooks/hooks-cursor.json +10 -0
- package/hooks/run-hook.cmd +36 -0
- package/hooks/session-start +38 -0
- package/package.json +69 -4
- package/plugin.json +51 -0
- package/scripts/build_plugin.py +50 -0
- package/scripts/check_flow_update.py +18 -0
- package/scripts/check_public_commit.py +86 -0
- package/scripts/fetch_public_refs.py +69 -0
- package/scripts/install.py +600 -0
- package/scripts/install.sh +1392 -0
- package/scripts/install_guards.py +279 -0
- package/scripts/install_personalization.py +527 -0
- package/scripts/install_skills.py +951 -0
- package/scripts/npm_install.py +85 -0
- package/scripts/recommend_flow_setup.py +1522 -0
- package/scripts/validate_skills.py +465 -0
- package/skills/nobrainer-auto-fine-tune/SKILL.md +79 -0
- package/skills/nobrainer-auto-fine-tune/references/capacity-audit.md +49 -0
- package/skills/nobrainer-autoimprove/SKILL.md +212 -0
- package/skills/nobrainer-autoimprove/scripts/count_words.py +22 -0
- package/skills/nobrainer-browser/SKILL.md +234 -0
- package/skills/nobrainer-browser/references/cdp-profile-restart.md +93 -0
- package/skills/nobrainer-build/SKILL.md +173 -0
- package/skills/nobrainer-codex-context/SKILL.md +111 -0
- package/skills/nobrainer-codex-context/scripts/codex_context.py +175 -0
- package/skills/nobrainer-decide/SKILL.md +198 -0
- package/skills/nobrainer-dispatcher/SKILL.md +256 -0
- package/skills/nobrainer-dispatcher/agents/openai.yaml +4 -0
- package/skills/nobrainer-rca/SKILL.md +163 -0
- package/skills/nobrainer-research/SKILL.md +131 -0
- package/skills/nobrainer-review/SKILL.md +195 -0
- package/skills/nobrainer-security/SKILL.md +166 -0
- package/skills/nobrainer-sessions/SKILL.md +223 -0
- package/skills/nobrainer-sessions/references/evidence-receipt.md +55 -0
- package/skills/nobrainer-sessions/references/protocol.md +337 -0
- package/skills/nobrainer-sessions/references/session-restart.md +255 -0
- package/skills/nobrainer-sessions/scripts/evidence_receipt.py +373 -0
- package/skills/nobrainer-sessions/scripts/restart_gate.py +140 -0
- package/skills/nobrainer-sessions/scripts/run_bounded.py +390 -0
- package/skills/nobrainer-sessions/scripts/session_title.py +43 -0
- package/skills/nobrainer-skill-doctor/SKILL.md +149 -0
- package/skills/nobrainer-skill-doctor/references/astra.md +19 -0
- package/skills/nobrainer-skill-doctor/scripts/audit.py +100 -0
- package/skills/nobrainer-skill-doctor/scripts/context_candidates.py +133 -0
- package/skills/nobrainer-spec-driven-development/SKILL.md +132 -0
- package/skills/nobrainer-spec-driven-development/references/spec-template.md +114 -0
- package/skills/nobrainer-team/SKILL.md +165 -0
- package/skills/nobrainer-team/references/team-plan.md +64 -0
- package/skills/nobrainer-tech-flow/SKILL.md +239 -0
- package/skills/nobrainer-tech-flow/VERSION +1 -0
- package/skills/nobrainer-tech-flow/references/autopilot.md +72 -0
- package/skills/nobrainer-tech-flow/references/codex-routing.md +21 -0
- package/skills/nobrainer-tech-flow/references/communication.md +108 -0
- package/skills/nobrainer-tech-flow/references/correction-hooks.md +110 -0
- package/skills/nobrainer-tech-flow/references/daily-update.md +28 -0
- package/skills/nobrainer-tech-flow/references/delivery.md +243 -0
- package/skills/nobrainer-tech-flow/references/idea-to-delivery.md +82 -0
- package/skills/nobrainer-tech-flow/references/long-run-state.md +209 -0
- package/skills/nobrainer-tech-flow/references/model-routing.md +83 -0
- package/skills/nobrainer-tech-flow/references/optional-decisions.md +83 -0
- package/skills/nobrainer-tech-flow/references/project-start.md +22 -0
- package/skills/nobrainer-tech-flow/references/routing.md +125 -0
- package/skills/nobrainer-tech-flow/references/setup.md +180 -0
- package/skills/nobrainer-tech-flow/references/worktrees.md +138 -0
- package/skills/nobrainer-tech-flow/scripts/check_flow_update.py +298 -0
- package/skills/nobrainer-tech-flow/scripts/cleanup_worktree.py +327 -0
- package/skills/nobrainer-tech-flow/scripts/decision_config.py +107 -0
- package/skills/nobrainer-tech-flow/scripts/flow_guard.py +252 -0
- package/skills/nobrainer-tech-flow/scripts/typed_decisions.py +210 -0
- package/skills/nobrainer-wiki/SKILL.md +164 -0
- package/skills/nobrainer-wiki/references/setup.md +88 -0
- package/skills/nobrainer-writing/SKILL.md +272 -0
- package/skills/nobrainer-writing/agents/openai.yaml +4 -0
- package/skills/nobrainer-writing/references/brief-artifacts.md +357 -0
- package/skills/nobrainer-writing/references/plain-technical-english.md +76 -0
- package/skills/nobrainer-writing/references/research.md +86 -0
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
# Brief artifacts
|
|
2
|
+
|
|
3
|
+
Use this reference only for the `BRIEF` mode of `nobrainer-writing`. Pick one
|
|
4
|
+
artifact and keep the output small enough that a busy reader can decide or act
|
|
5
|
+
without reconstructing the story.
|
|
6
|
+
|
|
7
|
+
## The common shape
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
Title: <observable failure or user outcome>
|
|
11
|
+
Problem or goal: <one sentence>
|
|
12
|
+
Impact or value: <who is affected and why it matters>
|
|
13
|
+
Evidence or context: <reproduction, example, link, version, or UNKNOWN>
|
|
14
|
+
Acceptance or question: <how we know what to do or what answer is needed>
|
|
15
|
+
Next action: <one owner/action, if relevant>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Use only fields that change triage or implementation. Do not add a history
|
|
19
|
+
section, root-cause theory, solution design or generic closing unless the reader
|
|
20
|
+
needs it to act. Facts from the requester outrank polished wording; unknowns
|
|
21
|
+
stay visible.
|
|
22
|
+
|
|
23
|
+
Task-shaped artifacts (`BUG`, `ISSUE`, `USER_STORY` and `REQUEST`) always expose
|
|
24
|
+
two fields:
|
|
25
|
+
|
|
26
|
+
- `Description`: what is wrong, needed or intended.
|
|
27
|
+
- `Definition of Done (DoD)`: the observable closure condition and required proof.
|
|
28
|
+
|
|
29
|
+
Keep `Acceptance` for observable product behavior; do not hide the description or
|
|
30
|
+
DoD inside `Problem`, `Context`, `Done when` or a generic paragraph. `COMMENT`
|
|
31
|
+
is intentionally smaller and does not need task fields.
|
|
32
|
+
|
|
33
|
+
Number every acceptance criterion sequentially as `AC01`, `AC02`, `AC03` and so
|
|
34
|
+
on. Start at `AC01`, do not leave gaps, and do not use anonymous bullets or
|
|
35
|
+
checkboxes under `Acceptance`. DoD remains separate and may reference the AC IDs.
|
|
36
|
+
|
|
37
|
+
Before compressing, keep a private ledger of material facts: when it started,
|
|
38
|
+
what did or did not happen, exact statuses/errors, conditions, uncertainty and
|
|
39
|
+
the requested action. A concern is not proof of a failure, and a request to know
|
|
40
|
+
whether something is safe is not permission to invent the policy that decides
|
|
41
|
+
it. If the source does not define the desired behavior, write the open decision
|
|
42
|
+
or `UNKNOWN` instead of adding a warning, retry rule, UI state or implementation.
|
|
43
|
+
|
|
44
|
+
## COMMENT
|
|
45
|
+
|
|
46
|
+
Use for code review, issue updates, decisions, questions and status. Start with
|
|
47
|
+
the observation or decision, then the impact, evidence and one request.
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
ENV: <Name> | URL: <route or N/A> | User: <role or redacted alias>
|
|
51
|
+
<Observation or decision>. <Why it matters or what changed>.
|
|
52
|
+
<Requested action or question>.
|
|
53
|
+
Evidence: <file, line, test, link or concrete example>.
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Good code-review comment:
|
|
57
|
+
|
|
58
|
+
> ENV: TEST | URL: N/A | User: reviewer
|
|
59
|
+
>
|
|
60
|
+
> This returns `200` when the provider times out, so the caller treats a failed
|
|
61
|
+
> sync as success. Return the error or mark the result `UNKNOWN`, and add a
|
|
62
|
+
> timeout test; evidence: `sync_provider()` line 84 and the missing-timeout test.
|
|
63
|
+
|
|
64
|
+
Good status comment:
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
ENV: QA | URL: https://demo.example.test/runs/42 | User: qa-operator
|
|
68
|
+
The timeout is now reported as a failed sync, and test `provider_timeout_marks_failure` passes. Next: review the PR.
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Do not turn a comment into a mini-report. If there is no concrete observation,
|
|
72
|
+
write a direct question instead of praise followed by a vague suggestion.
|
|
73
|
+
|
|
74
|
+
## BUG
|
|
75
|
+
|
|
76
|
+
Title the observable failure, not a guessed cause.
|
|
77
|
+
|
|
78
|
+
````text
|
|
79
|
+
Title: [Bug] <what fails> when <condition>
|
|
80
|
+
|
|
81
|
+
Description: <one sentence describing the failure>
|
|
82
|
+
|
|
83
|
+
ENV:
|
|
84
|
+
- Name: <QA | DEV | TEST | PROD | PREPROD | BETA | UNKNOWN>
|
|
85
|
+
- URL: <exact non-secret route or page, or N/A when no URL applies>
|
|
86
|
+
- User: <role or redacted/synthetic alias, never a credential>
|
|
87
|
+
- Build/client: <release, client, OS, deployment or UNKNOWN, when useful>
|
|
88
|
+
|
|
89
|
+
Steps to reproduce:
|
|
90
|
+
1. <setup>
|
|
91
|
+
2. <action>
|
|
92
|
+
3. <result>
|
|
93
|
+
|
|
94
|
+
Current behavior: <what happens now>
|
|
95
|
+
Expected behavior: <what should happen>
|
|
96
|
+
|
|
97
|
+
API request (cURL), when applicable:
|
|
98
|
+
```bash
|
|
99
|
+
# Complete redacted curl command: method, URL, headers and body.
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
API response, when applicable:
|
|
103
|
+
```http
|
|
104
|
+
# Status, headers and body.
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Database query (read-only), when applicable:
|
|
108
|
+
```sql
|
|
109
|
+
-- Read-only query.
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Database result, when applicable:
|
|
113
|
+
```text
|
|
114
|
+
# Observed result; use its actual format when useful.
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Evidence, for a UI screenshot or MP4 recording, when applicable: <attach file>
|
|
118
|
+
HAR, only when the page-load/request chain matters: <attach file or N/A>
|
|
119
|
+
|
|
120
|
+
Definition of Done (DoD): <observable regression proof and required checks>
|
|
121
|
+
````
|
|
122
|
+
|
|
123
|
+
`Description`, `ENV:`, `Steps to reproduce`, `Current behavior` and
|
|
124
|
+
`Expected behavior` are separate diagnostic fields. `ENV:` keeps the
|
|
125
|
+
environment name, exact URL and user used together; its optional `Build/client`
|
|
126
|
+
line preserves useful release or client context. Surface-proof sections remain separate
|
|
127
|
+
and appear only when applicable. Keep `URL` as `N/A` for a worker, CLI
|
|
128
|
+
or other flow with no page to open. Use `UNKNOWN` when the requester does not
|
|
129
|
+
know a value; do not replace a missing value with a guess.
|
|
130
|
+
|
|
131
|
+
Proof must match the affected surface:
|
|
132
|
+
|
|
133
|
+
- **API:** include a complete redacted `curl` request in one fenced `bash` block
|
|
134
|
+
and the response in a separate fenced `http` block. Keep method, URL, all
|
|
135
|
+
captured headers, body, status and response body; redact sensitive values
|
|
136
|
+
without changing the request's material shape.
|
|
137
|
+
- **Database:** include the read-only query and result in separate fenced blocks;
|
|
138
|
+
use `sql` for the query and the result's actual format when useful.
|
|
139
|
+
- **UI:** put a screenshot or an MP4 recording in `Evidence`. If the failure
|
|
140
|
+
depends on the page-load/request chain, attach a HAR too; keep the exact URL
|
|
141
|
+
and reproduction steps in the report.
|
|
142
|
+
|
|
143
|
+
When a bug crosses more than one surface, include each applicable proof pair or
|
|
144
|
+
artifact. Do not collapse them into a generic `Evidence` paragraph. A URL or
|
|
145
|
+
prose description alone does not replace UI evidence. If required proof is not
|
|
146
|
+
supplied, return `INPUT_REQUIRED` and identify what is missing instead of drafting
|
|
147
|
+
a report with weaker substitute evidence.
|
|
148
|
+
|
|
149
|
+
Example:
|
|
150
|
+
|
|
151
|
+
````text
|
|
152
|
+
Title: [Bug] Sync reports success after a provider timeout
|
|
153
|
+
|
|
154
|
+
Description: A timeout leaves the sync marked as successful.
|
|
155
|
+
|
|
156
|
+
ENV:
|
|
157
|
+
- Name: TEST
|
|
158
|
+
- URL: N/A (worker-only reproduction)
|
|
159
|
+
- User: sync-test-user
|
|
160
|
+
- Build/client: release 1.3.0, local worker, macOS, staging provider
|
|
161
|
+
|
|
162
|
+
Steps to reproduce:
|
|
163
|
+
1. Start a sync against a provider that does not answer.
|
|
164
|
+
2. Wait for the request timeout.
|
|
165
|
+
3. Open the run history.
|
|
166
|
+
|
|
167
|
+
Current behavior: The UI shows “success” and no retry is scheduled.
|
|
168
|
+
Expected behavior: The run is marked failed or explicitly unknown.
|
|
169
|
+
|
|
170
|
+
Database query (read-only):
|
|
171
|
+
```sql
|
|
172
|
+
SELECT status, error FROM sync_runs WHERE id = 42;
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Database result:
|
|
176
|
+
```text
|
|
177
|
+
status=success, error=timeout
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Definition of Done (DoD): A regression test proves timeout is not reported as
|
|
181
|
+
success, and any retry behavior in scope is explicitly agreed and covered.
|
|
182
|
+
````
|
|
183
|
+
|
|
184
|
+
Leave the suspected root cause out unless it is verified. A useful bug report
|
|
185
|
+
lets another person reproduce the behavior without a meeting.
|
|
186
|
+
|
|
187
|
+
## ISSUE
|
|
188
|
+
|
|
189
|
+
Use for a feature, workflow improvement or change request. Keep `Description` to
|
|
190
|
+
one sentence, then use only the fields that help someone decide or build it.
|
|
191
|
+
|
|
192
|
+
```text
|
|
193
|
+
Title: [Feature] <user outcome>
|
|
194
|
+
|
|
195
|
+
Description: <what is hard, missing or unreliable today>
|
|
196
|
+
Who is affected: <specific user or workflow>
|
|
197
|
+
Desired outcome: <what the user can do or rely on afterwards>
|
|
198
|
+
Evidence: <example, frequency, user wording or link>
|
|
199
|
+
|
|
200
|
+
Acceptance:
|
|
201
|
+
- [ ] AC01: <observable pass/fail result>
|
|
202
|
+
- [ ] AC02: <observable edge case or failure result>
|
|
203
|
+
- [ ] AC03: <proof or compatibility condition, if relevant>
|
|
204
|
+
|
|
205
|
+
Definition of Done (DoD):
|
|
206
|
+
- [ ] <acceptance criteria pass in the affected surface>
|
|
207
|
+
- [ ] <required tests/checks and proof are attached or linked>
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Example:
|
|
211
|
+
|
|
212
|
+
```text
|
|
213
|
+
Title: [Feature] Show why a sync was not retried
|
|
214
|
+
|
|
215
|
+
Description: A failed run only says “failed”, so it is unclear whether the next
|
|
216
|
+
run is safe to start.
|
|
217
|
+
Who is affected: Operators checking a failed scheduled sync.
|
|
218
|
+
Desired outcome: The run shows whether the failure is retryable and what to do.
|
|
219
|
+
Evidence: The current log contains the error, but the run history does not.
|
|
220
|
+
|
|
221
|
+
Acceptance:
|
|
222
|
+
- [ ] AC01: Retryable failures show “retryable” and the next retry time.
|
|
223
|
+
- [ ] AC02: Non-retryable failures show “manual action required”.
|
|
224
|
+
- [ ] AC03: The existing error detail remains available for diagnosis.
|
|
225
|
+
|
|
226
|
+
Definition of Done (DoD):
|
|
227
|
+
- [ ] The three acceptance criteria pass in the run-history UI.
|
|
228
|
+
- [ ] Automated coverage and the verification result are attached to the issue.
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## USER_STORY
|
|
232
|
+
|
|
233
|
+
Use the user's goal, not a UI control or implementation task. The familiar
|
|
234
|
+
persona/goal/value sentence is useful, but the acceptance criteria decide what
|
|
235
|
+
counts as complete.
|
|
236
|
+
|
|
237
|
+
Derive acceptance from the stated goal. If the source gives only a concern or a
|
|
238
|
+
question, keep the criterion at that level and name the missing decision; do not
|
|
239
|
+
invent a product policy to make the story look complete. Use `Given/When/Then`
|
|
240
|
+
only when it improves verification or matches the team's existing language.
|
|
241
|
+
|
|
242
|
+
```text
|
|
243
|
+
Title: <short user outcome>
|
|
244
|
+
|
|
245
|
+
Description: <real problem, context or constraint behind the goal>
|
|
246
|
+
|
|
247
|
+
As a <specific user>, I want <goal> so that <value>.
|
|
248
|
+
|
|
249
|
+
Context: <real situation or constraint, if needed>
|
|
250
|
+
Acceptance:
|
|
251
|
+
- AC01: Given <context>, when <action>, then <observable result>.
|
|
252
|
+
- AC02: <another independent pass/fail result>
|
|
253
|
+
|
|
254
|
+
Definition of Done (DoD):
|
|
255
|
+
- [ ] <the acceptance criteria pass for the named user>
|
|
256
|
+
- [ ] <required tests/checks and proof are attached or linked>
|
|
257
|
+
|
|
258
|
+
Out of scope: <important boundary, if needed>
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Example:
|
|
262
|
+
|
|
263
|
+
```text
|
|
264
|
+
Title: Explain failed scheduled syncs
|
|
265
|
+
|
|
266
|
+
Description: Operators currently see a failed run without knowing whether it is
|
|
267
|
+
safe to retry.
|
|
268
|
+
|
|
269
|
+
As an operator, I want to know whether a failed sync can be retried so that I
|
|
270
|
+
do not duplicate data or leave a delivery gap.
|
|
271
|
+
|
|
272
|
+
Acceptance:
|
|
273
|
+
- AC01: Given a timeout, when I open the run, then it is marked retryable and shows
|
|
274
|
+
the next retry time.
|
|
275
|
+
- AC02: Given an authentication failure, when I open the run, then it is marked
|
|
276
|
+
“manual action required”.
|
|
277
|
+
|
|
278
|
+
Definition of Done (DoD):
|
|
279
|
+
- [ ] Timeout and authentication scenarios pass in the run-history UI.
|
|
280
|
+
- [ ] The verification result is attached and the existing error detail remains
|
|
281
|
+
available.
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
Do not force the `As a / I want / so that` form when the real request is a bug,
|
|
285
|
+
decision or operational task. A plain one-sentence outcome is better than a
|
|
286
|
+
ceremonial story that hides the need.
|
|
287
|
+
|
|
288
|
+
## REQUEST
|
|
289
|
+
|
|
290
|
+
Use for a short ask to a person or team:
|
|
291
|
+
|
|
292
|
+
```text
|
|
293
|
+
Description: <what needs to change or be produced, and why>
|
|
294
|
+
Request: <one concrete action>
|
|
295
|
+
Why: <one sentence of context>
|
|
296
|
+
Input or location: <file, link, example or attachment>
|
|
297
|
+
Needed by: <date only when real>
|
|
298
|
+
Definition of Done (DoD): <the exact output and proof the requester can verify>
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
Example:
|
|
302
|
+
|
|
303
|
+
```text
|
|
304
|
+
Description: The issue template does not tell reporters what proof is required
|
|
305
|
+
for API, database and UI failures.
|
|
306
|
+
Request: Update the public bug template with separate copyable proof fields.
|
|
307
|
+
Why: Reporters should be able to paste the evidence without reconstructing it.
|
|
308
|
+
Input or location: .github/ISSUE_TEMPLATE/bug_report.md
|
|
309
|
+
Needed by: 2026-09-02
|
|
310
|
+
Definition of Done (DoD): The template has separate request/response, query/result
|
|
311
|
+
and UI/HAR fields, and the repository checks confirm their order.
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
## Human-feel and compression gate
|
|
315
|
+
|
|
316
|
+
Keep:
|
|
317
|
+
|
|
318
|
+
- exact product, file, error and user terms;
|
|
319
|
+
- the writer's real stance, uncertainty and concrete example;
|
|
320
|
+
- one clear ask or next action;
|
|
321
|
+
- enough context to reproduce or decide.
|
|
322
|
+
|
|
323
|
+
Cut:
|
|
324
|
+
|
|
325
|
+
- greetings, praise and “I would like to kindly…” before the point;
|
|
326
|
+
- “improve the experience”, “make it robust” and similar goals without a
|
|
327
|
+
measurable result;
|
|
328
|
+
- invented metrics, root causes, personas, urgency or agreement;
|
|
329
|
+
- repeated summaries, generic conclusions and implementation detail the reader
|
|
330
|
+
did not request.
|
|
331
|
+
|
|
332
|
+
Never add mistakes, random slang or fake personal experience to make text seem
|
|
333
|
+
human. Naturalness comes from concrete source material and restrained editing.
|
|
334
|
+
|
|
335
|
+
Before returning, check:
|
|
336
|
+
|
|
337
|
+
```text
|
|
338
|
+
ACTIONABLE: PASS | FAIL
|
|
339
|
+
FACTS_TRACEABLE: PASS | FAIL
|
|
340
|
+
EXPECTED_OR_DESIRED_CLEAR: PASS | FAIL
|
|
341
|
+
ACCEPTANCE_OR_QUESTION_CLEAR: PASS | FAIL | NOT_APPLICABLE
|
|
342
|
+
NO_INVENTED_CAUSE_OR_CONTEXT: PASS | FAIL
|
|
343
|
+
LOW_VALUE_SENTENCES_REMOVED: PASS | FAIL
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
Return `INPUT_REQUIRED` if a failed check would require invention.
|
|
347
|
+
|
|
348
|
+
## Research basis
|
|
349
|
+
|
|
350
|
+
Checked 2026-09-02. These are design inputs, not copied platform templates:
|
|
351
|
+
|
|
352
|
+
- [GitHub issue and pull request templates](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/about-issue-and-pull-request-templates) supports reusable guidance and structured issue forms.
|
|
353
|
+
- [GitHub issue form configuration](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository) shows required fields and separate expected/actual evidence; the public form schema is platform-specific, so this skill remains Markdown-first.
|
|
354
|
+
- [GitLab Documentation Style Guide](https://docs.gitlab.com/development/documentation/styleguide/) emphasizes concise, direct, precise, searchable and conversational-but-brief writing.
|
|
355
|
+
- [Digital.gov: Writing for understanding](https://digital.gov/guides/plain-language/writing) recommends audience-specific language, short sections and active responsibility.
|
|
356
|
+
- [Atlassian: User stories](https://www.atlassian.com/agile/project-management/user-stories) connects persona, goal, value and acceptance criteria; its 3 Cs are Card, Conversation and Confirmation.
|
|
357
|
+
- [hannsxpeter/humanizer](https://github.com/hannsxpeter/humanizer/blob/main/SKILL.md) recommends preserving an authentic voice and making minimal edits when the input already sounds human; it explicitly rejects detector gaming.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Plain technical English
|
|
2
|
+
|
|
3
|
+
Default to Writing's `TECHNICAL` mode for English specifications, instructions,
|
|
4
|
+
runbooks and technical explanations when no other mode is requested. Infer the profile from the artifact:
|
|
5
|
+
`PROCEDURE` for actions, `EXPLANATION` for understanding. A mixed document can
|
|
6
|
+
use both. Apply plain, precise language to ordinary replies too, without adding
|
|
7
|
+
a procedural template. Keep marketing and other requested voices appropriate
|
|
8
|
+
to their purpose. Write directly in the requested language; non-English output
|
|
9
|
+
uses natural grammar and the same meaning checks, not the English dictionary
|
|
10
|
+
or a mandatory translation pass. A technical product alone does not make an
|
|
11
|
+
artifact technical documentation.
|
|
12
|
+
|
|
13
|
+
This is an independent writing adaptation informed by
|
|
14
|
+
[ASD-STE100](https://www.asd-ste100.org/about_STE.html) and
|
|
15
|
+
[Karpathy's suggestion](https://x.com/karpathy/status/2105819303471976479).
|
|
16
|
+
It does not reproduce the standard or dictionary, check all its rules, or
|
|
17
|
+
claim official approval, certification or full conformance. A formal STE
|
|
18
|
+
request requires the current official standard, domain terminology and
|
|
19
|
+
qualified review; this mode alone cannot establish compliance.
|
|
20
|
+
|
|
21
|
+
## Preserve meaning before simplifying
|
|
22
|
+
|
|
23
|
+
Use Writing's meaning ledger. Freeze commands, code, identifiers, quotations,
|
|
24
|
+
links, numbers, units, scope, sequence, permission strength, negation,
|
|
25
|
+
uncertainty and safety conditions. Keep `may`, `must` and `should` distinct.
|
|
26
|
+
Do not split a condition away from the action it restricts or change `and` to `or`.
|
|
27
|
+
Do not invent the actor, test result or missing step to make a sentence cleaner.
|
|
28
|
+
Mandatory quoted wording remains verbatim; simplify its surrounding explanation.
|
|
29
|
+
|
|
30
|
+
Choose one name per concept from the project's terminology. Define an unfamiliar
|
|
31
|
+
term once if the reader needs it. Keep precise domain terms and technical verbs;
|
|
32
|
+
do not replace them with a common but less accurate word. There is no automatic
|
|
33
|
+
forbidden-word list, synonym substitution or ban on words ending in `-ing`.
|
|
34
|
+
|
|
35
|
+
## PROCEDURE: make the next action clear
|
|
36
|
+
|
|
37
|
+
- Put prerequisites and safety conditions before the action they govern.
|
|
38
|
+
- Give each step one action. Use a direct command when the source is an
|
|
39
|
+
instruction; preserve optional actions and permissions as optional.
|
|
40
|
+
- Prefer short sentences, with a 20-word target for newly written prose.
|
|
41
|
+
Split for comprehension, never by cutting a command, condition or caveat.
|
|
42
|
+
- Keep the original order when it changes behavior. State the expected result
|
|
43
|
+
only when supported. Keep recovery instructions with their trigger.
|
|
44
|
+
|
|
45
|
+
## EXPLANATION: make the mechanism clear
|
|
46
|
+
|
|
47
|
+
- State the result or concept, then explain the cause, limitation or consequence.
|
|
48
|
+
- Prefer short sentences, with a 25-word target and one topic per paragraph.
|
|
49
|
+
- Use active voice when the actor is known. Keep passive voice when the actor
|
|
50
|
+
is unknown or naming one would invent a fact.
|
|
51
|
+
- Use a small example or diagram only when it resolves a concrete ambiguity.
|
|
52
|
+
Do not produce a diagram, interactive page or video for every explanation.
|
|
53
|
+
|
|
54
|
+
Sentence targets are editing aids, not pass/fail limits for this adaptation.
|
|
55
|
+
Code, exact quotations and necessary technical terms can exceed them. Do not
|
|
56
|
+
claim official STE compliance from word counts or a few regex checks.
|
|
57
|
+
|
|
58
|
+
## Verify the rewrite
|
|
59
|
+
|
|
60
|
+
Compare every ledger item with the result. Check especially combined conditions,
|
|
61
|
+
exceptions, optional versus mandatory actions, unknown actors and unverified
|
|
62
|
+
outcomes. A shorter text fails if its meaning changes. Restore necessary detail
|
|
63
|
+
before returning it; ask only when the source itself is materially ambiguous.
|
|
64
|
+
|
|
65
|
+
Return the finished text by default. If an audit is requested, state the profile,
|
|
66
|
+
meaning-check result and any unresolved source ambiguity. Report words or tokens
|
|
67
|
+
only if measured. A word-count reduction does not prove cheaper tasks, better
|
|
68
|
+
models, safer operation or official conformance.
|
|
69
|
+
|
|
70
|
+
## Source boundaries
|
|
71
|
+
|
|
72
|
+
Reviewed 2026-10-02: [official FAQ](https://www.asd-ste100.org/STE_faq.html)
|
|
73
|
+
distinguishes procedures from descriptions and permits passive descriptions
|
|
74
|
+
when the actor is unknown. The [official tools page](https://www.asd-ste100.org/STEsoftware.html)
|
|
75
|
+
does not make a language checker a substitute for the standard. Karpathy
|
|
76
|
+
recommends an existing method; he did not invent it or supply a Flow benchmark.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Research basis for high-signal writing
|
|
2
|
+
|
|
3
|
+
Research question: which current writing methods best reduce generic AI prose
|
|
4
|
+
and word count without losing meaning, evidence, audience fit or safety?
|
|
5
|
+
|
|
6
|
+
Decision supported: define one portable writing skill for messages, comments,
|
|
7
|
+
documentation, reports and longer content. Every source was accessed on
|
|
8
|
+
2026-08-28. Repository sources are pinned below; publisher documentation remains
|
|
9
|
+
a live URL, so no immutable snapshot or unshown publication date is claimed.
|
|
10
|
+
|
|
11
|
+
## Ten approaches reviewed
|
|
12
|
+
|
|
13
|
+
| # | Source and provenance | Useful approach | Limitation carried into the skill |
|
|
14
|
+
|---|---|---|---|
|
|
15
|
+
| 1 | [blader/humanizer 2.11.2](https://github.com/blader/humanizer/blob/38b88903a5080c72a8c0472e79dcc9ffbf07938b/SKILL.md); commit `38b8890` dated 2026-08-19, Git blob `c9c2242`, accessed 2026-08-28 | Preserve every claim, never invent facts, and let a real writing sample override generic style rules. | A long pattern catalogue is useful for audit but too heavy for every ordinary draft; punctuation and vocabulary are contextual, not proof of authorship. |
|
|
16
|
+
| 2 | [hannsxpeter/humanizer 1.2.1](https://github.com/hannsxpeter/humanizer/blob/c35d49f5d57ed6e2222c23fab22b30e34ffa79e5/SKILL.md); commit `c35d49f` dated 2026-08-16, Git blob `b5bad0d`, accessed 2026-08-28 | Treat voice matching and conservative editing as the goal, with explicit false-positive restraint. | Do not frame quality work as beating detectors or disguising authorship. |
|
|
17
|
+
| 3 | [Concise Output 1.2.0](https://github.com/jagreehal/jagreehal-claude-skills/blob/810e8d69ef23476f15f3f5ee1044b9552a9fdba0/skills/concise-output/SKILL.md); commit `810e8d6` dated 2026-07-29, Git blob `f0e528f`, accessed 2026-08-28 | Put the point first, delete filler and test whether each sentence earns its place. | Extreme brevity needs exceptions for teaching, trade-offs, safety and long-form argument. |
|
|
18
|
+
| 4 | [Microsoft: simple words and concise sentences](https://learn.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences); live publisher page accessed 2026-08-28 | Use precise simple words, remove words without substance and keep text scannable. | Simple must not become abrupt, vague or less accurate. |
|
|
19
|
+
| 5 | [Google developer documentation: voice and tone](https://developers.google.com/style/tone); live publisher page accessed 2026-08-28 | Write clearly, directly and naturally for a global audience; avoid buzzwords, canned phrases and unnecessary entertainment. | Conversational writing is not a transcript of speech and should not import slang or cultural references by default. |
|
|
20
|
+
| 6 | [Digital.gov plain-language guide](https://digital.gov/guides/plain-language/writing) and [18F plain language](https://guides.18f.org/content-guide/our-approach/plain-language/); both live publisher pages accessed 2026-08-28 | Start from the specific audience, use active responsibility where useful, short sections and familiar literal terms. | Plain language is audience-relative; specialist readers may need precise technical terms. |
|
|
21
|
+
| 7 | [Mailchimp content style guide](https://styleguide.mailchimp.com/grammar-and-mechanics/); live publisher page accessed 2026-08-28 | Build an information hierarchy, lead with the main point, stay specific and adapt tone to the reader and channel. | Friendly voice never outranks clarity, truth or the reader's emotional context. |
|
|
22
|
+
| 8 | [GitLab documentation style guide](https://docs.gitlab.com/development/documentation/styleguide/); live publisher page accessed 2026-08-28 | Make documentation concise, direct, precise, task-oriented and easy to search or scan; avoid sales claims and self-reference. | Documentation structure differs from email, social and long-form prose, so one fixed template would overfit. |
|
|
23
|
+
| 9 | [IBM Carbon writing style](https://carbondesignsystem.com/guidelines/content/writing-style/); live publisher page accessed 2026-08-28 | Trim to as few words as possible without becoming terse, and vary tone with the user's journey and task. | Word count alone cannot judge usefulness; context and comprehension remain the acceptance test. |
|
|
24
|
+
| 10 | [W3C writing for web accessibility](https://www.w3.org/WAI/tips/writing/); live publisher page accessed 2026-08-28 | Use clear sentences, meaningful headings and links, expanded acronyms and structure that remains understandable to assistive technology. | Compression must not remove orientation or make meaning depend on visual layout. |
|
|
25
|
+
|
|
26
|
+
## Facts, inference and decision
|
|
27
|
+
|
|
28
|
+
`FACT`: Across maintained corporate, government and accessibility guidance, the
|
|
29
|
+
recurring practices are audience-first purpose, front-loaded information,
|
|
30
|
+
simple precise language, useful structure, active responsibility, consistent
|
|
31
|
+
terms and removal of unsupported or repetitive prose.
|
|
32
|
+
|
|
33
|
+
`FACT`: The reviewed humanizer skills add two valuable safeguards: preserve a
|
|
34
|
+
meaning ledger and use an authentic voice sample instead of injecting generic
|
|
35
|
+
"human" quirks.
|
|
36
|
+
|
|
37
|
+
`INFERENCE`: AI slop is primarily a relevance, structure and evidence problem.
|
|
38
|
+
A word blacklist can help detect clusters, but it cannot establish quality and
|
|
39
|
+
creates false positives when applied as a hard ban.
|
|
40
|
+
|
|
41
|
+
`INFERENCE`: A literal 80% reduction is unsafe as a universal acceptance rule.
|
|
42
|
+
The transferable Pareto principle is to protect decision-relevant value and
|
|
43
|
+
remove low-value ceremony until every remaining sentence earns its place.
|
|
44
|
+
|
|
45
|
+
`DECISION`: Use one lightweight protocol with a frozen content contract, a
|
|
46
|
+
structure-first compression pass, an integrity checksum, artifact-specific
|
|
47
|
+
shapes and final-only output. Keep detailed research outside `SKILL.md` so an
|
|
48
|
+
ordinary invocation pays only for operational guidance.
|
|
49
|
+
|
|
50
|
+
## Rejected patterns
|
|
51
|
+
|
|
52
|
+
- deliberate grammar errors, fake anecdotes or random slang as evidence of
|
|
53
|
+
humanity;
|
|
54
|
+
- optimizing for an AI detector or claiming human authorship;
|
|
55
|
+
- hard bans on punctuation, sentence length or individual vocabulary;
|
|
56
|
+
- a mandatory before/after report that makes every short answer longer;
|
|
57
|
+
- compression ratios that override facts, caveats, accessibility or action.
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
## Plain technical English adaptation — 2026-10-02
|
|
61
|
+
|
|
62
|
+
[Karpathy's original post](https://x.com/karpathy/status/2105819303471976479)
|
|
63
|
+
recommends the existing ASD-STE100 method for readable explanations, and choosing
|
|
64
|
+
diagrams or interactive artifacts when they aid understanding. It is a writing
|
|
65
|
+
suggestion, not a measured performance result for Flow.
|
|
66
|
+
|
|
67
|
+
The [official overview](https://www.asd-ste100.org/about_STE.html) describes a
|
|
68
|
+
controlled language with rules and a dictionary. The
|
|
69
|
+
[official FAQ](https://www.asd-ste100.org/STE_faq.html) distinguishes procedural
|
|
70
|
+
and descriptive text, including passive descriptions when the actor is unknown.
|
|
71
|
+
Writing adopts independently phrased clarity guidance in
|
|
72
|
+
[plain technical English](plain-technical-english.md), with a meaning ledger and
|
|
73
|
+
explicit limits. It does not ship the dictionary, certify conformance or infer
|
|
74
|
+
token/cost savings. The existing contextual anti-slop rules remain in force for
|
|
75
|
+
other modes and languages.
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
### Default communication refinement — 2026-10-02
|
|
79
|
+
|
|
80
|
+
Owner-requested policy: use plain technical English for operational exchanges
|
|
81
|
+
between agents, while user-facing replies keep the requested language. This is
|
|
82
|
+
a design default, not evidence that English improves every model or reduces
|
|
83
|
+
tokens. The factual contract is shared; a second translation call is not required.
|
|
84
|
+
English technical artifacts select TECHNICAL when no mode is requested. Other
|
|
85
|
+
languages use natural plain language with the same meaning-preservation checks.
|
|
86
|
+
Caller schemas, quoted text and explicit language/voice requests remain binding.
|