nobrainer-tech-flow 0.0.0-stage → 2.4.1
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 +205 -0
- package/CLAUDE.md +205 -0
- package/CONTRIBUTING.md +70 -0
- package/GEMINI.md +1 -0
- package/LICENSE +21 -0
- package/README.md +659 -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/RELEASING.md +24 -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/docs/releases/v2.4.1.md +63 -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 +1420 -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 +1537 -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,164 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nobrainer-wiki
|
|
3
|
+
description: "Use when the owner says nb-wiki, nb-add, nb-get, nb-tidy, or llm-wiki; asks to create or query a wiki, save durable knowledge, or safely audit and maintain a Markdown knowledge base across projects or sessions; do not use for transient task state."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# NoBrainer Wiki
|
|
7
|
+
|
|
8
|
+
Build and use a small, trustworthy knowledge system only when information should
|
|
9
|
+
compound across tasks. This skill is explicitly inspired by Andrej Karpathy's
|
|
10
|
+
[LLM wiki concept](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f)
|
|
11
|
+
and is an independent portable adaptation, not an official Karpathy project.
|
|
12
|
+
|
|
13
|
+
Read [references/setup.md](references/setup.md) before creating or reconnecting a
|
|
14
|
+
wiki. One skill owns all wiki behavior so setup, query, capture and maintenance
|
|
15
|
+
cannot drift into competing wrappers.
|
|
16
|
+
|
|
17
|
+
## Select one mode
|
|
18
|
+
|
|
19
|
+
- `SETUP`: decide whether a wiki is justified, then create/connect/govern it.
|
|
20
|
+
- `GET`: read-only targeted retrieval. This is the default for a question.
|
|
21
|
+
- `ADD`: explicit ingestion or promotion of durable knowledge.
|
|
22
|
+
- `TIDY_AUDIT`: inspect trust, links, freshness and backlog without writing.
|
|
23
|
+
- `TIDY_APPLY`: apply only deterministic approved maintenance after an audit.
|
|
24
|
+
|
|
25
|
+
Do not combine modes invisibly. A `GET` that discovers a durable insight does
|
|
26
|
+
not authorize `ADD`; a tidy audit does not authorize semantic rewrites.
|
|
27
|
+
|
|
28
|
+
## Decide whether a wiki is justified
|
|
29
|
+
|
|
30
|
+
Prefer normal repository documentation when knowledge is local to one codebase
|
|
31
|
+
and already discoverable. A wiki is justified when durable decisions, sources,
|
|
32
|
+
research, explicit owner preferences or operational knowledge must be queried
|
|
33
|
+
across tasks/sessions and would otherwise be repeatedly reconstructed.
|
|
34
|
+
|
|
35
|
+
Do not store live execution state, leases, current hashes, transient blockers,
|
|
36
|
+
credentials or secrets. A spec defines a contract; a plan orders work; a wiki
|
|
37
|
+
preserves reusable knowledge. One fact has one canonical owner.
|
|
38
|
+
|
|
39
|
+
## Shared safety and knowledge contract
|
|
40
|
+
|
|
41
|
+
Resolve the wiki root from project instructions or the owner; never guess a
|
|
42
|
+
destination. Read its rules, index, classification boundary, relevant pages and
|
|
43
|
+
dirty/writer state before any operation.
|
|
44
|
+
|
|
45
|
+
Classify source and destination:
|
|
46
|
+
|
|
47
|
+
- `PUBLIC`: safe for intentional disclosure;
|
|
48
|
+
- `INTERNAL`: non-public operating knowledge without restricted personal data;
|
|
49
|
+
- `CONFIDENTIAL`: explicitly restricted, minimum necessary content;
|
|
50
|
+
- `SECRET`: credentials, keys, tokens, cookies, seed phrases or equivalents.
|
|
51
|
+
|
|
52
|
+
Never write `SECRET` material to source captures, pages, inboxes, logs, prompts
|
|
53
|
+
or Git history. Never promote private personalization into a public repository.
|
|
54
|
+
Respect copyright/access constraints and prefer concise synthesis plus provenance
|
|
55
|
+
over copying an external work.
|
|
56
|
+
|
|
57
|
+
Separate observed fact, attributed claim, inference, recommendation and
|
|
58
|
+
forecast. Every durable entry needs source, date, scope, classification and
|
|
59
|
+
certainty; dates are absolute. Preserve contradictions and stale-risk markers
|
|
60
|
+
rather than silently choosing a convenient version.
|
|
61
|
+
|
|
62
|
+
## `SETUP`
|
|
63
|
+
|
|
64
|
+
Run a read-only preflight:
|
|
65
|
+
|
|
66
|
+
- inspect existing instructions, wiki/map/rules, folder conventions and Git
|
|
67
|
+
state;
|
|
68
|
+
- detect sources/pages/inbox/log, writers, sync and automation;
|
|
69
|
+
- classify the target and compare it with the minimal model in the setup
|
|
70
|
+
reference;
|
|
71
|
+
- check every managed marker pair and overlapping dirty file.
|
|
72
|
+
|
|
73
|
+
Create only missing pieces and preserve established conventions. Use one source
|
|
74
|
+
of truth and one inbox per independent writer/machine. Do not initialize a
|
|
75
|
+
repository, pull/rebase, relocate, truncate or overwrite existing content just
|
|
76
|
+
because a template differs. Unknown classification, malformed markers,
|
|
77
|
+
conflicting writer or dirty overlapping scope is `BLOCKED`.
|
|
78
|
+
|
|
79
|
+
## `GET` — read-only retrieval
|
|
80
|
+
|
|
81
|
+
1. Rewrite the question into concepts, aliases, languages and freshness needs.
|
|
82
|
+
2. Use the index as a map, then `rg` exact/relevant terms. Follow only useful
|
|
83
|
+
links and cited sources; do not load the whole vault by default.
|
|
84
|
+
3. Prefer curated pages and inspect raw sources when a claim, conflict or exact
|
|
85
|
+
wording needs verification.
|
|
86
|
+
4. Enforce the requester's access boundary and redact unsafe paths/details.
|
|
87
|
+
5. Return `WIKI_FACT`, `INFERENCE`, `RECOMMENDATION` and `UNKNOWN` distinctly,
|
|
88
|
+
with page/source provenance and freshness.
|
|
89
|
+
|
|
90
|
+
An absent lexical hit is not proof of absence. Search synonyms and related map
|
|
91
|
+
entries before declaring a gap. `GET` never repairs, updates freshness, captures
|
|
92
|
+
the answer, commits or pushes.
|
|
93
|
+
|
|
94
|
+
## `ADD` — durable capture or promotion
|
|
95
|
+
|
|
96
|
+
1. Confirm the owner requested persistence or that the project's explicit
|
|
97
|
+
`LEARNING_WRITE_POLICY: AUTO_SCOPED` covers this durable event, then resolve
|
|
98
|
+
one writer for the target files.
|
|
99
|
+
2. Read the complete allowed input; record provenance, date, classification and
|
|
100
|
+
capture method. Keep verbatim source separate from synthesis.
|
|
101
|
+
3. Extract only reusable facts, decisions, definitions, evidence and procedures.
|
|
102
|
+
Exclude transient status and unsupported conclusions.
|
|
103
|
+
4. Search existing pages by terms/aliases/languages before creating anything.
|
|
104
|
+
5. Prepare one scoped write set: allowed source capture, pages, index, log and
|
|
105
|
+
exact inbox items to promote.
|
|
106
|
+
6. Apply minimal edits with citations and relative links.
|
|
107
|
+
7. Verify target content, index reachability, source links, classification and
|
|
108
|
+
secret boundaries before marking inbox items processed.
|
|
109
|
+
8. Append one meaningful change-log entry only after successful promotion.
|
|
110
|
+
|
|
111
|
+
A mixed sensitive source requires an explicit sanitization list and destination
|
|
112
|
+
approval. Do not mass-rewrite, resolve owner decisions, commit, push or publish
|
|
113
|
+
unless those actions were separately authorized.
|
|
114
|
+
|
|
115
|
+
For video or recorded-session knowledge, preserve the complete available
|
|
116
|
+
timestamped transcript or caption stream as the raw source before synthesis.
|
|
117
|
+
Keep source capture separate from curated knowledge, cite timestamp ranges, and
|
|
118
|
+
use articles or summaries only as secondary cross-checks. If the complete
|
|
119
|
+
stream is unavailable, mark the capture partial rather than reconstructing
|
|
120
|
+
missing speech from surrounding context.
|
|
121
|
+
|
|
122
|
+
## `TIDY_AUDIT` and `TIDY_APPLY`
|
|
123
|
+
|
|
124
|
+
Audit exact dangling links, index drift, stale/time-sensitive claims, uncited
|
|
125
|
+
material claims, contradictions, duplicate candidates, orphans, inbox backlog,
|
|
126
|
+
classification leaks and secret/PII risk. Every finding needs file/line, evidence,
|
|
127
|
+
confidence and one recommended action. An orphan may be intentional; a fuzzy
|
|
128
|
+
title match is not permission to merge.
|
|
129
|
+
|
|
130
|
+
`TIDY_APPLY` may automatically perform only deterministic reversible work in the
|
|
131
|
+
approved scope: an exact link correction with a proven target, missing index
|
|
132
|
+
link, format normalization, or removal of a processed inbox item whose payload
|
|
133
|
+
is proven present and retention allows removal. Semantic merges, page/source
|
|
134
|
+
deletion, contradiction choice, reclassification and broad rewrites require an
|
|
135
|
+
owner decision. Re-read before each write, rerun checks after, and preserve a
|
|
136
|
+
scoped rollback.
|
|
137
|
+
|
|
138
|
+
## Durable personalization without hidden memory
|
|
139
|
+
|
|
140
|
+
Preserve only explicit reusable preferences, corrections, decisions and verified
|
|
141
|
+
working patterns. At task start retrieve only relevant pages; at close capture
|
|
142
|
+
only information likely to matter again. Do not infer a permanent trait from one
|
|
143
|
+
interaction. The owner must be able to inspect, correct and remove personalized
|
|
144
|
+
knowledge.
|
|
145
|
+
|
|
146
|
+
An external memory or retrieval service must earn its place with a representative
|
|
147
|
+
task set and a measured recall, context and latency target. Before adoption,
|
|
148
|
+
define project/account scope, source provenance, freshness and expiry, conflict
|
|
149
|
+
handling, correction/deletion/export, privacy, cost and a file-readable fallback.
|
|
150
|
+
Treat an injected profile or recalled item as context to verify, never as current
|
|
151
|
+
state or authority. Keep this policy in `nobrainer-wiki`; do not create another
|
|
152
|
+
permanent skill merely for a provider integration.
|
|
153
|
+
|
|
154
|
+
## Automation and close gate
|
|
155
|
+
|
|
156
|
+
Manual capture/promotion is the default. Schedule it only when measured volume
|
|
157
|
+
justifies a bounded trigger/input/output, one state owner, idempotence, retry
|
|
158
|
+
budget, conflict stop, secret filtering, dry run, logs and rollback. Scheduler,
|
|
159
|
+
credentials, commit/push and publishing remain owner gates.
|
|
160
|
+
|
|
161
|
+
Finish with mode, root/classification, exact pages/sources/inbox/log touched,
|
|
162
|
+
provenance, checks, contradictions, omitted sensitive material, uncertainty,
|
|
163
|
+
rollback and one next action. Never claim a clean or synchronized wiki when a
|
|
164
|
+
scan/source was partial or inaccessible.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# NoBrainer Wiki setup reference
|
|
2
|
+
|
|
3
|
+
Adapt this reference to the target. Existing conventions win when they preserve
|
|
4
|
+
the same safety and information boundaries.
|
|
5
|
+
|
|
6
|
+
## Minimal layout
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
WIKI_ROOT/
|
|
10
|
+
WIKI.md durable rules and confidentiality boundaries
|
|
11
|
+
index.md small map to curated knowledge
|
|
12
|
+
log.md append-only meaningful changes
|
|
13
|
+
sources/ raw captures with provenance and classification
|
|
14
|
+
pages/ curated, linked, cited knowledge
|
|
15
|
+
_inbox/WRITER.md append-only candidates owned by one writer
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Do not create empty layers that have no present use. A project-local wiki may
|
|
19
|
+
live under its existing docs structure.
|
|
20
|
+
|
|
21
|
+
## Curated page contract
|
|
22
|
+
|
|
23
|
+
```markdown
|
|
24
|
+
# Human title
|
|
25
|
+
|
|
26
|
+
One durable statement a future reader can act on.
|
|
27
|
+
|
|
28
|
+
CLASSIFICATION: PUBLIC | INTERNAL | CONFIDENTIAL
|
|
29
|
+
LAST_VERIFIED: YYYY-MM-DD | UNKNOWN
|
|
30
|
+
|
|
31
|
+
## Facts
|
|
32
|
+
|
|
33
|
+
- <observed or source-backed claim> (source: <relative source or URL>)
|
|
34
|
+
|
|
35
|
+
## Decisions and implications
|
|
36
|
+
|
|
37
|
+
- <decision, owner, date and scope>
|
|
38
|
+
|
|
39
|
+
## Contradictions / stale risk
|
|
40
|
+
|
|
41
|
+
- <conflict or freshness warning, or NONE>
|
|
42
|
+
|
|
43
|
+
## Related
|
|
44
|
+
|
|
45
|
+
- [[another-page]]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Use absolute dates. Mark observed fact, inference, recommendation and forecast
|
|
49
|
+
separately. Do not resolve conflicting sources by silently deleting one.
|
|
50
|
+
|
|
51
|
+
## Managed instruction block
|
|
52
|
+
|
|
53
|
+
Insert a project-specific block with a complete marker pair. Keep it concise so
|
|
54
|
+
instructions do not become a copy of the wiki protocol.
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
<!-- NB-WIKI:START -->
|
|
58
|
+
## NoBrainer Wiki
|
|
59
|
+
|
|
60
|
+
Knowledge root: `WIKI_ROOT`. Rules: `WIKI_ROOT/WIKI.md`.
|
|
61
|
+
- At session start, read `WIKI_ROOT/index.md`, then search only relevant pages.
|
|
62
|
+
- Capture only durable facts in the current writer's inbox; never secrets.
|
|
63
|
+
- Use `nobrainer-wiki` mode `GET` for queries, `ADD` for explicit persistence,
|
|
64
|
+
and `TIDY_AUDIT` before any maintenance write.
|
|
65
|
+
- Runtime state, leases and transient blockers stay in their canonical ledgers.
|
|
66
|
+
<!-- NB-WIKI:END -->
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Before replacement, require exactly one START and one END in the correct order.
|
|
70
|
+
Zero markers means append at the repository's conventional location. Any other
|
|
71
|
+
count/order is a stop for manual repair. Verify a byte-level before/after diff
|
|
72
|
+
outside the managed block.
|
|
73
|
+
|
|
74
|
+
## Setup report
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
WIKI_DECISION: REUSE | CREATE | REPAIR | NOT_JUSTIFIED | BLOCKED
|
|
78
|
+
ROOT: <resolved path/reference>
|
|
79
|
+
CLASSIFICATION: <level>
|
|
80
|
+
FILES_REUSED: <list>
|
|
81
|
+
FILES_CREATED: <list>
|
|
82
|
+
INSTRUCTIONS_UPDATED: <list>
|
|
83
|
+
AUTOMATION: NOT_CONFIGURED | PROPOSED | VERIFIED
|
|
84
|
+
CHECKS: <commands/readbacks>
|
|
85
|
+
UNCERTAINTY: <items or NONE>
|
|
86
|
+
ROLLBACK: <exact procedure and readback>
|
|
87
|
+
NEXT_ACTION: <one action>
|
|
88
|
+
```
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nobrainer-writing
|
|
3
|
+
description: "Use when the owner says nb-write, nb-brief, nobrainer-writing, nobrainer-style, or nobrainer-human-like, or asks for prose quality work on a user-facing artifact, such as drafting, rewriting, compressing, humanizing, editing, or reviewing it; maximize useful information per word without dropping facts, evidence, caveats, voice, or required action."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# NoBrainer Writing
|
|
7
|
+
|
|
8
|
+
Produce high-signal prose that helps a specific reader understand, decide or act.
|
|
9
|
+
Treat the Pareto idea as a direction: preserve nearly all decision-relevant value
|
|
10
|
+
while using far fewer words. It is not permission to remove evidence, conditions
|
|
11
|
+
or nuance merely to hit an arbitrary ratio.
|
|
12
|
+
|
|
13
|
+
The protocol, field names and examples in this public skill are written in
|
|
14
|
+
English. Match the requested output language; when English is requested, use
|
|
15
|
+
plain, idiomatic English rather than a literal translation.
|
|
16
|
+
|
|
17
|
+
This skill owns prose quality. `nobrainer-research` owns missing or current
|
|
18
|
+
external facts, `nobrainer-decide` owns consequential choices, and
|
|
19
|
+
`nobrainer-build` owns behavioral code changes and repository integration. A
|
|
20
|
+
small text-only edit can stay here. Do not invoke this skill for a one-sentence
|
|
21
|
+
answer that is already clear, specific and complete.
|
|
22
|
+
|
|
23
|
+
Use `BRIEF` for a short actionable artifact: a comment, bug report, feature
|
|
24
|
+
issue, user story, status update or one clear request. It is a mode of this
|
|
25
|
+
skill, not a new skill. Read [references/brief-artifacts.md](references/brief-artifacts.md)
|
|
26
|
+
for the matching shape and examples before drafting.
|
|
27
|
+
|
|
28
|
+
Read [references/research.md](references/research.md) only when changing this
|
|
29
|
+
protocol, auditing its rationale or comparing another writing method. Ordinary
|
|
30
|
+
writing runs should not spend context on the research record.
|
|
31
|
+
|
|
32
|
+
## Choose one mode
|
|
33
|
+
|
|
34
|
+
- `DRAFT`: create prose from an established brief and verified source material.
|
|
35
|
+
- `COMPRESS`: shorten existing prose while preserving its material meaning.
|
|
36
|
+
- `REWRITE`: improve clarity, structure, voice and naturalness without changing
|
|
37
|
+
the factual contract.
|
|
38
|
+
- `REVIEW`: identify only material prose defects and propose the smallest useful
|
|
39
|
+
correction; do not rewrite merely to express a preference.
|
|
40
|
+
- `TECHNICAL`: make English procedures or explanations easier to follow. Read
|
|
41
|
+
[plain technical English](references/plain-technical-english.md) for its two
|
|
42
|
+
profiles and meaning checks. It is not a certified ASD-STE100 checker.
|
|
43
|
+
- `BRIEF`: create or compress one short actionable artifact. Choose exactly one
|
|
44
|
+
shape from the reference: `COMMENT`, `BUG`, `ISSUE`, `USER_STORY` or `REQUEST`.
|
|
45
|
+
|
|
46
|
+
If the user did not name a mode, default to `TECHNICAL` for English technical
|
|
47
|
+
procedures and explanations, including specs and runbooks. For other artifacts,
|
|
48
|
+
infer the smallest mode that satisfies the request. Answer users directly in
|
|
49
|
+
their requested language; keep non-English technical prose clear and natural
|
|
50
|
+
without applying an English dictionary or forcing an intermediate translation.
|
|
51
|
+
Explicit language, format and voice requirements take precedence. A request to "humanize" means `REWRITE`, not detector evasion or the
|
|
52
|
+
injection of fake mistakes.
|
|
53
|
+
|
|
54
|
+
## Freeze the content contract
|
|
55
|
+
|
|
56
|
+
Before drafting, resolve internally:
|
|
57
|
+
|
|
58
|
+
```text
|
|
59
|
+
PURPOSE:
|
|
60
|
+
AUDIENCE:
|
|
61
|
+
USE_AFTER_READING:
|
|
62
|
+
ARTIFACT_AND_CHANNEL:
|
|
63
|
+
LANGUAGE_AND_TONE:
|
|
64
|
+
VOICE_SOURCE: supplied sample | project guide | inferred neutral | NONE
|
|
65
|
+
MUST_PRESERVE: facts | names | numbers | dates | links | quotations | terms |
|
|
66
|
+
commands | conditions | uncertainty | caveats | requested action
|
|
67
|
+
SOURCE_STATUS: VERIFIED | PROVIDED | RESEARCH_REQUIRED | UNKNOWN
|
|
68
|
+
LENGTH_OR_FORMAT_CONSTRAINT:
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Infer obvious fields from the request and current project. Ask one focused
|
|
72
|
+
question only when the answer changes factual meaning, audience fit, material
|
|
73
|
+
tone or safety. In a larger Flow run, use the approved BUDDY brief and do not
|
|
74
|
+
re-open settled requirements.
|
|
75
|
+
|
|
76
|
+
For `BRIEF`, additionally freeze the observed problem or desired outcome, the
|
|
77
|
+
reader's next action, the smallest useful evidence, and the pass/fail condition
|
|
78
|
+
when one exists. If a missing fact would make the artifact misleading or
|
|
79
|
+
non-actionable, ask one precise question or return `INPUT_REQUIRED`; do not fill
|
|
80
|
+
the gap with a plausible cause, metric, user or environment.
|
|
81
|
+
|
|
82
|
+
Preserve every material input detail, including onset, negation, current status,
|
|
83
|
+
condition and uncertainty. Do not turn a fear, hypothesis or requested decision
|
|
84
|
+
into an observed fact or an invented acceptance rule. If the desired behavior is
|
|
85
|
+
not specified, keep the decision open or write `UNKNOWN` rather than choosing a
|
|
86
|
+
warning, retry policy, UI state or technical solution.
|
|
87
|
+
|
|
88
|
+
For `COMPRESS`, `REWRITE` and `TECHNICAL`, make a private meaning ledger before changing the
|
|
89
|
+
text. Track every material claim, number, name, date, URL, quotation,
|
|
90
|
+
attribution, identifier, command, negation, condition, uncertainty marker,
|
|
91
|
+
caveat and call to action. Never add a source, experience, opinion, metric or
|
|
92
|
+
detail that the input does not support. Route a material knowledge gap to
|
|
93
|
+
`nobrainer-research`; do not cover it with fluent prose.
|
|
94
|
+
|
|
95
|
+
## Write in six passes
|
|
96
|
+
|
|
97
|
+
1. **Outcome:** state the answer, decision, result or requested action in the
|
|
98
|
+
first useful sentence. Keep background only when the reader needs it to
|
|
99
|
+
interpret that outcome.
|
|
100
|
+
2. **Structure:** group each idea once. Put decision-relevant information first.
|
|
101
|
+
Use headings, bullets or a table only when they make a real relationship
|
|
102
|
+
easier to scan than short prose.
|
|
103
|
+
3. **Compression:** remove throat-clearing, repeated points, self-reference,
|
|
104
|
+
empty transitions, generic summaries and decorative detail. Merge sentences
|
|
105
|
+
only while the result remains easier to understand.
|
|
106
|
+
4. **Precision:** prefer concrete nouns and precise verbs. Name the actor when it
|
|
107
|
+
clarifies responsibility. Use one term per concept and define necessary
|
|
108
|
+
jargon for the actual audience.
|
|
109
|
+
5. **Voice:** match an authentic supplied sample or project guide when one
|
|
110
|
+
exists. Otherwise use a direct, calm and natural neutral voice. Adapt tone to
|
|
111
|
+
the reader's situation; technical, legal, error and safety text should not be
|
|
112
|
+
made casual for entertainment.
|
|
113
|
+
6. **Integrity:** compare the final text with the meaning ledger and the user's
|
|
114
|
+
requested action. Restore anything materially lost, and remove anything that
|
|
115
|
+
cannot be traced to the input or a cited source.
|
|
116
|
+
|
|
117
|
+
Compress structure before swapping vocabulary. A shorter synonym cannot repair
|
|
118
|
+
a paragraph with no clear purpose.
|
|
119
|
+
|
|
120
|
+
For `BRIEF`, put the outcome or failure in the title/first sentence, keep one
|
|
121
|
+
problem or goal per artifact, and include only evidence that changes action or
|
|
122
|
+
triage. Use the fewest applicable fields. A comment is normally a few sentences;
|
|
123
|
+
an issue or story is normally one description, a short evidence/context block and
|
|
124
|
+
two to five testable criteria. Put long logs, transcripts and screenshots after
|
|
125
|
+
the concise core or link them; never hide them when they are needed for proof.
|
|
126
|
+
Return the finished artifact only unless the owner asks for an audit.
|
|
127
|
+
|
|
128
|
+
For task-shaped `BRIEF` artifacts (`BUG`, `ISSUE`, `USER_STORY` and `REQUEST`),
|
|
129
|
+
write `Description:` and `Definition of Done (DoD):` as explicit fields.
|
|
130
|
+
`Description` states what is wrong, needed or intended; `Acceptance` states
|
|
131
|
+
observable product behavior when applicable; `Definition of Done (DoD)` states
|
|
132
|
+
the closure condition and required proof. Do not hide either field inside a
|
|
133
|
+
generic paragraph or rename DoD to a vague `Done when`. `COMMENT` stays compact
|
|
134
|
+
and does not need task fields.
|
|
135
|
+
|
|
136
|
+
Number every acceptance criterion with a sequential two-digit ID: `AC01`, `AC02`,
|
|
137
|
+
`AC03` and so on. Start at `AC01`, do not leave gaps, and do not use anonymous
|
|
138
|
+
checkboxes under `Acceptance`; DoD remains a separate section and may reference
|
|
139
|
+
the acceptance IDs.
|
|
140
|
+
|
|
141
|
+
For both `BUG` and `COMMENT`, always provide one compact `ENV:` block with
|
|
142
|
+
`Name`, `URL` and `User`. `Name` is one of `QA`, `DEV`, `TEST`, `PROD`,
|
|
143
|
+
`PREPROD`, `BETA` or `UNKNOWN`; use `N/A` when a field genuinely does not
|
|
144
|
+
apply. `User` is a role or redacted/synthetic alias, never a credential.
|
|
145
|
+
|
|
146
|
+
For `BUG`, start with `Description`, then keep the diagnostic fields separate and
|
|
147
|
+
in this order: `ENV:`, `Steps to reproduce`, `Current behavior` and
|
|
148
|
+
`Expected behavior`; follow them with the applicable surface-proof sections:
|
|
149
|
+
`API request (cURL)`, `API response`, `Database query (read-only)`,
|
|
150
|
+
`Database result`, `Evidence` for a UI screenshot or MP4 recording and, only when
|
|
151
|
+
the page-load/request chain matters, `HAR`; finish with `Definition of Done (DoD)`.
|
|
152
|
+
Use `UNKNOWN` when a value is not known; never silently omit a required field or
|
|
153
|
+
invent its value.
|
|
154
|
+
|
|
155
|
+
For `ISSUE`, keep `Description` to one sentence, then use `Who is affected`,
|
|
156
|
+
`Desired outcome`, `Evidence`, `Acceptance` and `Definition of Done (DoD)` by
|
|
157
|
+
default. Add another field only when it changes triage or implementation.
|
|
158
|
+
|
|
159
|
+
Surface proof has a copyable artifact shape:
|
|
160
|
+
|
|
161
|
+
- **API:** put the complete redacted request in a fenced `bash` block as a
|
|
162
|
+
`curl` command, including method, URL, all captured headers and body. Put the
|
|
163
|
+
observed response in a separate fenced `http` block with status, all captured
|
|
164
|
+
headers and body. Redact sensitive values without changing the request's
|
|
165
|
+
material shape.
|
|
166
|
+
- **Database:** put the read-only query and its result in separate fenced code
|
|
167
|
+
blocks, using `sql` for the query and the result's actual format when useful.
|
|
168
|
+
Redact sensitive rows and values.
|
|
169
|
+
- **UI:** put a screenshot or MP4 recording under `Evidence`. If the failure
|
|
170
|
+
depends on the page-load or request chain, attach a HAR as well; the exact URL
|
|
171
|
+
and steps still belong in the report.
|
|
172
|
+
|
|
173
|
+
If several surfaces are involved, include each applicable proof pair or artifact.
|
|
174
|
+
Do not replace the API/DB proof pairs with generic prose. For a UI bug, `Evidence`
|
|
175
|
+
is the attachment field; a URL or prose description alone does not replace it.
|
|
176
|
+
If required proof is missing, return `INPUT_REQUIRED` and name the missing
|
|
177
|
+
artifact instead of drafting a weaker report.
|
|
178
|
+
|
|
179
|
+
## Anti-slop gate
|
|
180
|
+
|
|
181
|
+
Remove these patterns when they add no information:
|
|
182
|
+
|
|
183
|
+
- praise, greetings, apologies or announcements before the actual point;
|
|
184
|
+
- inflated significance, sales language, vague attribution and unsupported
|
|
185
|
+
certainty;
|
|
186
|
+
- headings that repeat the next sentence, repetitive transitions, forced groups
|
|
187
|
+
of three and multiple labels that say the same thing;
|
|
188
|
+
- fake candor, invented objections, rejected options no reader proposed,
|
|
189
|
+
dramatic fragments and generic optimistic endings;
|
|
190
|
+
- abstract metaphors, buzzwords or modifiers standing in for a concrete fact;
|
|
191
|
+
- formatting used as decoration, including excessive bold text, emoji and a
|
|
192
|
+
list where one sentence is clearer;
|
|
193
|
+
- comments or documentation that restate visible code instead of explaining a
|
|
194
|
+
non-obvious reason, constraint, risk or consequence.
|
|
195
|
+
|
|
196
|
+
These are contextual signals, not a forbidden-word list. Keep a transition,
|
|
197
|
+
technical term, passive construction, long sentence, repeated phrase or unusual
|
|
198
|
+
punctuation when it is accurate, natural for the writer and useful to the
|
|
199
|
+
reader. Professional grammar is not an AI tell.
|
|
200
|
+
|
|
201
|
+
Never simulate humanity with typos, missing punctuation, fabricated anecdotes,
|
|
202
|
+
random slang, artificial sentence fragments or opinions the author did not
|
|
203
|
+
express. Do not optimize for an AI detector or claim that prose is human-written.
|
|
204
|
+
|
|
205
|
+
## Match the artifact
|
|
206
|
+
|
|
207
|
+
- **Reply, comment or status:** outcome first, then only decisive evidence,
|
|
208
|
+
blocker and next action.
|
|
209
|
+
- **Email or request:** purpose, essential context, one clear ask and timing when
|
|
210
|
+
material.
|
|
211
|
+
- **README or instructions:** purpose, prerequisites, shortest successful path,
|
|
212
|
+
verification and only likely failure recovery.
|
|
213
|
+
- **Pull request:** lead with why the change is needed, then describe only the net
|
|
214
|
+
change against the actual PR base and the verification that helps review it.
|
|
215
|
+
Remove abandoned approaches, local absolute paths and routine checks already
|
|
216
|
+
evident from required CI; preserve still-relevant links, images and caveats.
|
|
217
|
+
- **Report or decision note:** answer, verified facts, inference or trade-off,
|
|
218
|
+
decision and next action. Keep fact and inference visibly distinct.
|
|
219
|
+
- **Long-form content:** thesis, evidence and implications in a coherent arc.
|
|
220
|
+
Concision removes repetition; it does not flatten a real argument into notes.
|
|
221
|
+
- **Code comment:** explain why, invariant, risk or surprising consequence.
|
|
222
|
+
Delete comments that merely translate the code into English.
|
|
223
|
+
- **Marketing or social copy:** audience problem, concrete value or proof and one
|
|
224
|
+
honest action. Do not manufacture urgency, authority or transformation.
|
|
225
|
+
|
|
226
|
+
For a natural human feel, preserve the author's actual nouns, stance, uncertainty
|
|
227
|
+
and occasional first-person phrasing when supplied. Prefer a specific example
|
|
228
|
+
over a polished generalization. Do not manufacture typos, slang, anecdotes,
|
|
229
|
+
opinions, emotional claims or "human" irregularity; do not optimize for an AI
|
|
230
|
+
detector or claim that a person wrote the result.
|
|
231
|
+
|
|
232
|
+
## Quality gate
|
|
233
|
+
|
|
234
|
+
Before returning the text, require:
|
|
235
|
+
|
|
236
|
+
```text
|
|
237
|
+
PURPOSE_CLEAR: PASS | FAIL
|
|
238
|
+
ANSWER_OR_ACTION_FRONT_LOADED: PASS | NOT_APPLICABLE | FAIL
|
|
239
|
+
MEANING_PRESERVED: PASS | NOT_APPLICABLE | FAIL
|
|
240
|
+
CLAIMS_TRACEABLE: PASS | NOT_APPLICABLE | FAIL
|
|
241
|
+
CAVEATS_AND_CONDITIONS_PRESERVED: PASS | NOT_APPLICABLE | FAIL
|
|
242
|
+
VOICE_AND_AUDIENCE_FIT: PASS | FAIL
|
|
243
|
+
VALUE_DENSITY: PASS | FAIL
|
|
244
|
+
SCAN_AND_ACCESSIBILITY: PASS | NOT_APPLICABLE | FAIL
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
`VALUE_DENSITY` passes when every sentence adds a distinct fact, implication,
|
|
248
|
+
instruction, decision, transition or intentional voice effect. Ask of each
|
|
249
|
+
sentence: if it disappears, does meaning, evidence, tone or action materially
|
|
250
|
+
change? If not, cut it.
|
|
251
|
+
|
|
252
|
+
A lower word count is diagnostic, not acceptance. Do not over-compress a short
|
|
253
|
+
source, remove a necessary example, collapse separate conditions or hide risk.
|
|
254
|
+
When accessibility matters, preserve descriptive headings, meaningful link text,
|
|
255
|
+
expanded acronyms and enough context to understand the text out of layout.
|
|
256
|
+
|
|
257
|
+
## Return the result
|
|
258
|
+
|
|
259
|
+
Return only the finished prose by default. Do not surround a two-line answer
|
|
260
|
+
with a process report. When the owner asks for an audit, comparison or measured
|
|
261
|
+
compression of the prose itself, add a compact block after the result:
|
|
262
|
+
|
|
263
|
+
```text
|
|
264
|
+
MODE:
|
|
265
|
+
WORDS: before -> after | NOT_MEASURED
|
|
266
|
+
MATERIAL_CHANGES:
|
|
267
|
+
PRESERVED_CONTRACT:
|
|
268
|
+
UNVERIFIED_OR_INPUT_REQUIRED:
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Return `INPUT_REQUIRED` instead of drafting when a missing fact, source, voice
|
|
272
|
+
sample or constraint would force invention or materially change the result.
|