@ervis/skills 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.
Files changed (28) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +335 -0
  3. package/bin/install.js +135 -0
  4. package/package.json +39 -0
  5. package/skills/README.md +18 -0
  6. package/skills/engineering/commit/SKILL.md +47 -0
  7. package/skills/engineering/implement-ruby/template.md +75 -0
  8. package/skills/engineering/ticket-grooming/SKILL.md +58 -0
  9. package/skills/incubator/qrspi-design/SKILL.md +131 -0
  10. package/skills/incubator/qrspi-implement/SKILL.md +123 -0
  11. package/skills/incubator/qrspi-plan/SKILL.md +113 -0
  12. package/skills/incubator/qrspi-question/SKILL.md +184 -0
  13. package/skills/incubator/qrspi-research/SKILL.md +109 -0
  14. package/skills/incubator/qrspi-research-resolve/SKILL.md +94 -0
  15. package/skills/incubator/qrspi-structure/SKILL.md +116 -0
  16. package/skills/incubator/qrspi-test-plan/SKILL.md +253 -0
  17. package/skills/incubator/qrspi-test-plan/references/example-test-plan.md +151 -0
  18. package/skills/productivity/brainstorm/SKILL.md +49 -0
  19. package/skills/productivity/brainstorm/references/assumption-mapping.md +24 -0
  20. package/skills/productivity/brainstorm/references/five-whys.md +20 -0
  21. package/skills/productivity/brainstorm/references/pre-mortem.md +21 -0
  22. package/skills/productivity/brainstorm/references/question-burst.md +23 -0
  23. package/skills/productivity/brainstorm/references/question-formulation-technique.md +27 -0
  24. package/skills/productivity/brainstorm/references/six-thinking-hats.md +24 -0
  25. package/skills/productivity/brainstorm/references/starbursting.md +19 -0
  26. package/skills/productivity/caveman/SKILL.md +49 -0
  27. package/skills/productivity/simple-english/SKILL.md +15 -0
  28. package/skills/research/.gitkeep +0 -0
@@ -0,0 +1,151 @@
1
+ # Example test plan
2
+
3
+ This is a full `test-plan.md` for a small feature. The owner of a report shares it with members of the same workspace.
4
+
5
+ Look at these parts:
6
+
7
+ - `Report#viewable_by?` has an expected contract change. It tells the implement step which failures of old tests are expected.
8
+ - **Clients** shows why `Report#share_with` is public. The Slack module imports it.
9
+ - The cases for the rules are on the `interface` level. The `top` level has only the goal cases and the HTTP responses (TC-1.5).
10
+ - Each case copies the rule that it guards. Thus, the implement step can write the tests from this file only.
11
+
12
+ ````markdown
13
+ # Test plan
14
+
15
+ ## Approach
16
+ The owner of a report shares it with members of the same workspace.
17
+ All sharing rules live in `Report#share_with`. The controller only
18
+ maps its result to HTTP. The member gets an email.
19
+
20
+ ## Public interfaces
21
+
22
+ ### POST /reports/:id/shares
23
+ **Level**: top
24
+ **Clients**: web app, mobile app
25
+ **Contract**: The owner sends a member id. Response 201 with
26
+ `{ member_id, report_id, shared_at }` for a new share, 200 with the
27
+ same body for an existing share, 403 if not the owner, 422 with
28
+ `{ error }` if a rule fails.
29
+ **Expected contract change**: none (new endpoint)
30
+
31
+ ### Report#share_with(member, by:)
32
+ **Level**: interface
33
+ **Clients**: the shares controller, the Slack module (imports it to
34
+ share from Slack)
35
+ **Contract**: Returns `:created` or `:already_shared`. Raises
36
+ `Report::NotAllowed` if `by` is not the owner. Raises
37
+ `Report::InvalidMember` if the member is not in the workspace. Sends
38
+ one email for `:created` only.
39
+ **Expected contract change**: none (new method)
40
+
41
+ ### Report#viewable_by?(user)
42
+ **Level**: interface
43
+ **Clients**: the reports controller, the search module
44
+ **Contract**: True for the owner and for workspace admins.
45
+ **Expected contract change**: also true for shared members. Existing
46
+ tests that expect `false` for a non-owner member can fail if that
47
+ member now has a share. Any other failure is a probable bug.
48
+
49
+ ## Outside dependencies
50
+ | Dependency | How tests control it | Contract test or source of truth |
51
+ |---|---|---|
52
+ | Database | real, clean for each case | - |
53
+ | Email | background job runs in the test; check the test mail box | Rails mail delivery, no fake |
54
+
55
+ ## Known gaps
56
+ - Two shares of the same report at the same moment. Not in scope: the
57
+ design accepts the rare duplicate email.
58
+
59
+ ## Slice 1: Share a report and view it
60
+ The owner shares a report with a workspace member. The member can
61
+ view it, but cannot edit it.
62
+
63
+ ### Goal case
64
+ **Interface**: POST /reports/:id/shares (top)
65
+ **Given** Alice owns report R. Bob is in her workspace.
66
+ **When** Alice posts to `/reports/R/shares` with Bob.
67
+ **Then**:
68
+ - the status is 201
69
+ - the body has Bob's id and R's id
70
+ - Bob's `GET /reports/R` returns 200
71
+
72
+ ### Cases
73
+ #### TC-1.1 A non-owner cannot share
74
+ **Interface**: Report#share_with (interface)
75
+ **Guards**: "Only the owner can share the report."
76
+ **Given** Alice owns R. Carol is in the workspace.
77
+ **When** Carol shares R with Bob.
78
+ **Then**:
79
+ - it raises `Report::NotAllowed`
80
+ - Bob has no share
81
+
82
+ #### TC-1.2 A member of another workspace cannot get a share
83
+ **Interface**: Report#share_with (interface)
84
+ **Guards**: "The member must be in the same workspace as the report."
85
+ **Given** Alice owns R. Dan is in another workspace.
86
+ **When** Alice shares R with Dan.
87
+ **Then**:
88
+ - it raises `Report::InvalidMember`
89
+ - Dan has no share
90
+
91
+ #### TC-1.3 Sharing two times gives one share
92
+ **Interface**: Report#share_with (interface)
93
+ **Guards**: "Sharing with the same member two times gives one share."
94
+ **Given** Alice shared R with Bob.
95
+ **When** Alice shares R with Bob again.
96
+ **Then**:
97
+ - it returns `:already_shared`
98
+ - Bob has one share
99
+
100
+ #### TC-1.4 A shared member can view, but not edit
101
+ **Interface**: Report#viewable_by? (interface)
102
+ **Guards**: "A shared member can view the report, but cannot edit it."
103
+ **Given** Alice shared R with Bob.
104
+ **When** we ask if Bob can view R, and if Bob can edit R.
105
+ **Then**:
106
+ - `viewable_by?(bob)` is true
107
+ - `editable_by?(bob)` is false
108
+
109
+ #### TC-1.5 The endpoint maps each result to HTTP
110
+ **Interface**: POST /reports/:id/shares (top)
111
+ **Guards**: the HTTP contract above.
112
+ **Given** the situations of TC-1.1, TC-1.2, and TC-1.3.
113
+ **When** Alice or Carol posts to `/reports/R/shares`.
114
+ **Then**:
115
+ - not the owner: 403
116
+ - a rule fails: 422 with the error
117
+ - an existing share: 200 with the share
118
+
119
+ ## Slice 2: Email the member
120
+ The member gets an email when a report is shared with him or her.
121
+
122
+ ### Goal case
123
+ **Interface**: POST /reports/:id/shares (top)
124
+ **Given** Alice owns R. Bob is in her workspace.
125
+ **When** Alice posts to `/reports/R/shares` with Bob, and the
126
+ background jobs run.
127
+ **Then**:
128
+ - Bob has one email
129
+ - the subject has R's title
130
+ - the body has a link to R
131
+
132
+ ### Cases
133
+ #### TC-2.1 No second email for a duplicate share
134
+ **Interface**: Report#share_with (interface)
135
+ **Guards**: "Sends one email for `:created` only."
136
+ **Given** Alice shared R with Bob, and Bob got the email.
137
+ **When** Alice shares R with Bob again, and the jobs run.
138
+ **Then**:
139
+ - Bob has exactly one email in total
140
+
141
+ #### TC-2.2 No email when sharing fails
142
+ **Interface**: Report#share_with (interface)
143
+ **Guards**: "Sends one email for `:created` only."
144
+ **Given** the situation of TC-1.1.
145
+ **When** Carol shares R with Bob, and the jobs run.
146
+ **Then**:
147
+ - the mail box is empty
148
+
149
+ ## Findings
150
+ None.
151
+ ````
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: brainstorm
3
+ description: Run a structured brainstorm with the user. Pick the framework that fits the situation - starbursting, question formulation (QFT), question burst, pre-mortem, assumption mapping, 5 whys, or six thinking hats. Use when the user wants to brainstorm, make or rank questions, scope research, test a plan, find risks or assumptions, get unstuck, find a root cause, or look at a decision from all sides. Also use when the user names one of these frameworks.
4
+ ---
5
+
6
+ # Brainstorm
7
+
8
+ If the `simple-english` skill is available, follow it for everything you write for the user.
9
+
10
+ TODO skill, 2026-09-27. Not built yet.
11
+
12
+ ## 1. Pick the framework
13
+
14
+ Find what the user wants to do in the table. Then read the reference for that framework.
15
+
16
+ | The user wants to | Framework | Reference |
17
+ |---|---|---|
18
+ | Find all the unknowns about a goal before work starts | Starbursting | [starbursting](references/starbursting.md) |
19
+ | Make a long list of questions shorter and keep the best | QFT | [question-formulation-technique](references/question-formulation-technique.md) |
20
+ | Get unstuck, or see a problem in a new way | Question burst | [question-burst](references/question-burst.md) |
21
+ | Find how a plan can fail before it starts | Pre-mortem | [pre-mortem](references/pre-mortem.md) |
22
+ | Find which beliefs in a plan to test first | Assumption mapping | [assumption-mapping](references/assumption-mapping.md) |
23
+ | Find the root cause of a problem or a habit | 5 whys | [five-whys](references/five-whys.md) |
24
+ | Look at a decision from all sides | Six thinking hats | [six-thinking-hats](references/six-thinking-hats.md) |
25
+
26
+ To scope research, use four frameworks in this sequence:
27
+
28
+ 1. Starbursting makes the first list of questions.
29
+ 2. Pre-mortem adds questions about how the work can fail.
30
+ 3. Assumption mapping adds questions about beliefs that have no proof.
31
+ 4. QFT ranks the questions and keeps the most important.
32
+
33
+ Done when you tell the user the framework name and why it fits, in one sentence.
34
+
35
+ ## 2. Do the brainstorm with the user
36
+
37
+ Do the steps in the reference. The user gives judgment and context. You give the structure and the pace. You also find the facts that you can look up yourself.
38
+
39
+ Keep the first phase for ideas only. Give no answers and no opinions in that phase. Each framework exists to stop early judgment.
40
+
41
+ Done when each step in the reference has its output.
42
+
43
+ ## 3. Give the result to the user
44
+
45
+ Give the result in the form that the framework makes. This can be a list of questions, a ranked table, or a chain of causes.
46
+
47
+ Then save it as a note in the vault, under a `brainstorm` folder. Name the file `brainstorm-<topic>.md`, where `<topic>` is a short dash-case name for what the brainstorm was about.
48
+
49
+ If the brainstorm did not finish all its steps, name the file `brainstorm-<topic>-draft-<yy-mm-dd>.md` instead, using today's date. Move it to the plain `brainstorm-<topic>.md` name once the brainstorm is done.
@@ -0,0 +1,24 @@
1
+ # Assumption mapping
2
+
3
+ ## What it is
4
+
5
+ This method comes from the book "Testing Business Ideas" by David Bland and Alexander Osterwalder. Write each belief that the plan needs, as a short "we believe that..." statement. Then place each belief on a grid with two axes:
6
+
7
+ - How important is the belief for the success of the plan? An important belief is one that sinks the plan if it turns out false.
8
+ - How much evidence supports the belief?
9
+
10
+ Some beliefs are important and have little evidence. These are the leap-of-faith assumptions. Test or research them first.
11
+
12
+ For engineering work, use Bland's three categories like this: desirability asks whether people (users, or other engineers who must use this) actually want it; viability asks whether it is worth building and keeping, given the maintenance cost; feasibility asks whether the team and the current systems can actually build and run it.
13
+
14
+ ## Steps
15
+
16
+ 1. Write the plan.
17
+ 2. Write the assumptions in the three categories: desirable, viable, feasible. Write each assumption as a short, testable "we believe that..." statement. Done when each category has assumptions.
18
+ 3. Before placing anything on the grid, check each item: if you can resolve it right now by reading the code, checking the docs, or running a command, it is a fact, not an assumption. Go check it immediately and drop it from the list. Only beliefs that stay unresolved after that check go on the grid.
19
+ 4. Put each remaining assumption in a table with columns: assumption, category, importance (high or low), evidence (strong, weak, or none). A markdown table is easier for an agent to produce correctly and easier for the user to scan than a two-axis grid, so use the table, not a drawn grid.
20
+ 5. Sort the table so the assumptions with high importance and weak or no evidence sort to the top. For each one, write a test or a research question. The test must prove the assumption or show that it is false.
21
+
22
+ ## Using pre-mortem as a source
23
+
24
+ Each top cause from [pre-mortem](pre-mortem.md) can become an assumption here: rephrase it as "we believe this cause will not happen" or "we believe we have covered this," then place it on the table like any other assumption.
@@ -0,0 +1,20 @@
1
+ # 5 Whys
2
+
3
+ ## What it is
4
+
5
+ This method comes from the Toyota Production System (Sakichi Toyoda, Taiichi Ohno).
6
+
7
+ Start with a statement of the problem. Ask why the problem occurred. Then ask why again about the answer. Continue until the answer names a cause that you can fix.
8
+
9
+ Five is a guide. You do not have to ask exactly five times. Do not stop just because you reached five; a shallow answer at five is not a root cause.
10
+
11
+ The method has two well-known weak points. First, a single chain assumes one cause leads to the next in a straight line, but real problems often have more than one contributing cause at a step. When a "why" has more than one true answer, branch into a tree instead of forcing one chain; follow each branch down on its own. Second, people stop as soon as they can name a person or team to blame, such as "the reviewer missed it." A name is never a root cause. When an answer names a person or team, ask why one more time: what missing check, unclear rule, or absent training let that happen. Stop only when the answer names something you can fix in the system, not in a person.
12
+
13
+ This also works for finding the reason behind a habit or a style choice, not only a failure. Use the same steps, but replace "the problem" with "the choice" and "occurred" with "was made."
14
+
15
+ ## Steps
16
+
17
+ 1. Write the problem (or the choice) as a specific statement of what occurred (or was made).
18
+ 2. Ask why. Answer with evidence. Do this again. If an answer names a person or a team, ask why once more instead of stopping there. If an answer splits into more than one true cause, branch into a tree and follow each branch down. Done when each branch ends in a cause that you can fix, and a fix for that cause stops the problem.
19
+ 3. Check each link from the bottom up. Make sure that each cause really makes the result above it.
20
+ 4. Name the fix for the root cause of each branch.
@@ -0,0 +1,21 @@
1
+ # Pre-mortem
2
+
3
+ ## What it is
4
+
5
+ Gary Klein published this method in Harvard Business Review in 2007 ("Performing a Project Premortem"). Think that it is some months in the future and the plan failed badly. Each person writes the reasons for the failure. Klein's point: making the team assume failure is a fact, not just a risk, makes people name problems they would otherwise soften or stay quiet about, because a dissenter now looks observant instead of disloyal.
6
+
7
+ When the failure is a fact and not only a possibility, people name risks that they otherwise make smaller. Each cause becomes a risk to control or a question to research.
8
+
9
+ ## Steps
10
+
11
+ 1. Write the plan. Write what success is.
12
+ 2. Say that the plan failed. Write as many different causes as possible. Use categories that fit software and agent work: technical (bugs, integration, performance, data loss), scope (unclear or changing requirements), adoption (people do not use or trust the result), maintenance (nobody keeps it working after launch), and agent-specific (the skill does not trigger, the agent misreads the task, the agent uses the wrong tool, the instructions are ambiguous). Done when each category has causes.
13
+ 3. For each cause, check it is specific: it must name a concrete mechanism and a sign you would notice, not a general trait. "Bad communication" is not specific. "The reference file assumes a group of five, so a solo agent skips the red-hat step" is specific. If a cause is generic, ask why it would happen one more time, the way [5 whys](five-whys.md) does, until it names something concrete.
14
+ 4. Rank the causes by how likely they are and how much damage they do.
15
+ 5. For each cause at the top, write one of these:
16
+ - An action that controls the risk.
17
+ - A question that you must answer before the work starts.
18
+
19
+ ## Feeding the output onward
20
+
21
+ Turn any top cause you cannot control outright into a belief statement, such as "we believe the skill will trigger correctly without a worked example," and hand it to [assumption mapping](assumption-mapping.md) to place on the grid. Turn any cause that still needs a fact to resolve into a line in the research brief that [QFT](question-formulation-technique.md) produces.
@@ -0,0 +1,23 @@
1
+ # Question Burst
2
+
3
+ ## What it is
4
+
5
+ Hal Gregersen made this method at MIT. His book is "Questions Are the Answer". The original has three parts: set the stage (pick a challenge you care about, invite people to help), a four-minute burst of questions with two rules (no one answers, no one explains why they ask), and a close. Gregersen also has people write down how they feel about the problem before the burst and again after it, to see if their view shifted.
6
+
7
+ First, the user describes the problem in a short time. Then you write as many questions as possible in a short burst. Give no answers and no explanations. After the burst, find the questions that change how the user sees the problem.
8
+
9
+ The purpose is to break the current view of the problem. Coverage is not the purpose.
10
+
11
+ An agent has no clock, so use a question count instead of a time limit: a minimum of 15 questions stands in for the four minutes. Keep the before/after feelings check, but ask the user directly, since only the user has a feeling about the problem: ask for one word or one short phrase for how they feel about the problem before the burst, and ask again after. A shift in that word is a sign the burst worked, alongside the marked questions.
12
+
13
+ ## Steps
14
+
15
+ 1. The user describes the problem in a sentence or two. Ask the user for one word or short phrase for how they feel about it right now.
16
+ 2. Write a minimum of 15 questions. Write questions only, no answers and no explanation for why you asked. Done when you have 15 questions.
17
+ 3. Mark the questions that show the problem in a new way, not just questions that are merely interesting. A question shows a new view when it challenges an assumption the user has not stated, asks about the opposite of the current approach, or reframes the goal itself rather than a detail of it. An interesting-but-not-new question stays inside the current framing and only asks for more detail. Write why for each marked question.
18
+ 4. Change the one or two best questions into a next step.
19
+ 5. Ask the user again for one word or short phrase for how they feel about the problem now. Note any shift.
20
+
21
+ ## When to use this vs. starbursting
22
+
23
+ Use question burst when the user is stuck on a problem they already understand and needs a new angle. Use [starbursting](starbursting.md) when the work is new and the goal is full coverage of the unknowns, not a shift in view.
@@ -0,0 +1,27 @@
1
+ # Question Formulation Technique (QFT)
2
+
3
+ ## What it is
4
+
5
+ Dan Rothstein and Luz Santana, at the Right Question Institute, made this method. It makes questions, then improves them and ranks them. The official version has five steps: build a focus (called a QFocus), produce questions, improve questions, prioritize questions, and decide next steps.
6
+
7
+ It has four rules for the phase that makes questions:
8
+
9
+ - Ask as many questions as possible.
10
+ - Do not stop to discuss, judge, or answer a question.
11
+ - Write each question exactly as you first say it.
12
+ - Change each statement into a question.
13
+
14
+ An agent runs the same steps but keeps a stricter split than a group does, because one mind is doing both jobs. Treat step 2 (produce) and step 5 (prioritize) as two separate passes with nothing in between. During step 2, write every question down even if it looks weak, obvious, or already answered; do not skip a question because you judge it bad, and do not silently improve it either. Only in step 5, once the full list exists, switch into judging mode and rank what is on the page.
15
+
16
+ ## Steps
17
+
18
+ 1. Start from a focus (QFocus). The focus is a statement or a goal, not a question.
19
+ 2. Write questions and obey the four rules. Done when no more questions come. Do not judge or filter while writing.
20
+ 3. Mark each question as closed or open. A closed question has a yes, no, or one-word answer.
21
+ 4. Change some closed questions to open questions, and some open questions to closed questions. Write what each type is good for.
22
+ 5. Choose the three best questions. For research questions, rank against these criteria: how directly the answer serves the goal, whether the answer needs real investigation rather than a quick look-up, how much the answer would change the next step if it came back the opposite of expected, and whether the question overlaps with one already chosen. Give the reason for each choice.
23
+ 6. Write what the three questions are for.
24
+
25
+ ## Chaining with other frameworks
26
+
27
+ Use [starbursting](starbursting.md) first to generate the raw question list across who/what/where/when/why/how, then run QFT's improve and prioritize steps (3 to 6) on that list instead of a fresh produce step. Use [assumption mapping](assumption-mapping.md) after QFT when the question is really about an unproven belief. QFT ranks by research value; assumption mapping ranks by importance and evidence. Run QFT first to cut noise, then assumption mapping on what is left if some questions are really assumptions in disguise.
@@ -0,0 +1,24 @@
1
+ # Six Thinking Hats
2
+
3
+ ## What it is
4
+
5
+ Edward de Bono made this method. Each hat is one type of thinking. Use one hat at a time, so that the types do not mix.
6
+
7
+ The method was written for a group, so each hat is normally one voice among many at the same time. One agent can still run it alone: the agent plays every hat in turn, one after another, the same way the blue hat already forces a fixed sequence in a group. The main thing lost by going solo is the parallel view: several people wearing the same hat at once catch things one mind under that hat misses. There is no fix for that beyond asking the user to add their own view under a hat if they want to.
8
+
9
+ This method fits a decision better than it fits making research questions. Its risk and benefit hats (black and yellow) call for weighing options the user has already named, not for surfacing unknowns. Reach for it after the user already has a plan or a choice in front of them. For open research scoping, prefer the sequence in the main [SKILL.md](../SKILL.md): starbursting, pre-mortem, assumption mapping, then QFT.
10
+
11
+ | Hat | Type of thinking |
12
+ |---|---|
13
+ | White | Facts, and the information that is missing |
14
+ | Red | Feelings and first reactions |
15
+ | Black | Risks, and why the idea can fail |
16
+ | Yellow | Benefits, and why the idea can work |
17
+ | Green | New ideas and alternatives |
18
+ | Blue | Process: what to think about next, and the conclusions |
19
+
20
+ ## Steps
21
+
22
+ 1. Blue hat: write the decision and the sequence of hats.
23
+ 2. Use each hat in the sequence. Stay in the type of thinking for that hat. For the red hat, an agent has no real gut feeling of its own, so ask the user for their instinctive reaction in one short line, with no justification attached, and write that down as the red hat's output. Done when each hat has output.
24
+ 3. Blue hat: write a summary. Make the decision, or name what is still unknown.
@@ -0,0 +1,19 @@
1
+ # Starbursting
2
+
3
+ ## What it is
4
+
5
+ Starbursting makes questions only. Put the goal at the center of a star with six points. Each point is one question word: who, what, where, when, why, how.
6
+
7
+ Write questions for each point. Write no answers. The value is coverage. A point with no questions shows a blind spot.
8
+
9
+ No single named inventor of starbursting turned up in a search of primary sources. The "Lawrence Eggleton" attribution that some sites repeat could not be confirmed anywhere and looks unfounded. Treat starbursting as a named variant of the standard 5W1H (who, what, where, when, why, how) checklist, not as one person's method. Common variants pair it with SWOT, or run it right before QFT to cut the list down.
10
+
11
+ For one agent and one user: the user gives the goal and the context, and answers any question the agent cannot look up. The agent asks for one question word at a time so the user is not shown 20 questions at once, and writes down what it can already answer from the codebase or docs separately, outside the starbursting list.
12
+
13
+ ## Steps
14
+
15
+ 1. Write the goal in one sentence at the center.
16
+ 2. For each of the six points, write 3 to 5 questions only. Done when each point has questions, or a note that it does not apply. Stop a point early if new questions start repeating earlier ones. Do not explain or answer any question in this step, even ones you already know the answer to. If you catch yourself writing an answer, delete it and turn it back into a question.
17
+ 3. Add more questions under the questions that open new branches.
18
+ 4. Give the list to the user. Group the questions by point. Give no answers. Answer any question you already know the answer to only after the list is complete, and only if the user asks for it.
19
+ 5. Always chain into [QFT](question-formulation-technique.md) next to rank the list. Six points at 3 to 5 questions each give at least 18 questions, so the list is long enough to need ranking every time.
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: caveman
3
+ description: >
4
+ Ultra-compressed communication mode. Cuts token usage ~75% by dropping
5
+ filler, articles, and pleasantries while keeping full technical accuracy.
6
+ Use when user says "caveman mode", "talk like caveman", "use caveman",
7
+ "less tokens", "be brief", or invokes /caveman.
8
+ ---
9
+
10
+ Respond terse like smart caveman. All technical substance stay. Only fluff die.
11
+
12
+ ## Persistence
13
+
14
+ ACTIVE EVERY RESPONSE once triggered. No revert after many turns. No filler drift. Still active if unsure. Off only when user says "stop caveman" or "normal mode".
15
+
16
+ ## Rules
17
+
18
+ Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course/happy to), hedging. Fragments OK. Short synonyms (big not extensive, fix not "implement a solution for"). Abbreviate common terms (DB/auth/config/req/res/fn/impl). Strip conjunctions. Use arrows for causality (X -> Y). One word when one word enough.
19
+
20
+ Technical terms stay exact. Code blocks unchanged. Errors quoted exact.
21
+
22
+ Pattern: `[thing] [action] [reason]. [next step].`
23
+
24
+ Not: "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..."
25
+ Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"
26
+
27
+ ### Examples
28
+
29
+ **"Why React component re-render?"**
30
+
31
+ > Inline obj prop -> new ref -> re-render. `useMemo`.
32
+
33
+ **"Explain database connection pooling."**
34
+
35
+ > Pool = reuse DB conn. Skip handshake -> fast under load.
36
+
37
+ ## Auto-Clarity Exception
38
+
39
+ Drop caveman temporarily for: security warnings, irreversible action confirmations, multi-step sequences where fragment order risks misread, user asks to clarify or repeats question. Resume caveman after clear part done.
40
+
41
+ Example -- destructive op:
42
+
43
+ > **Warning:** This will permanently delete all rows in the `users` table and cannot be undone.
44
+ >
45
+ > ```sql
46
+ > DROP TABLE users;
47
+ > ```
48
+ >
49
+ > Caveman resume. Verify backup exist first.
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: simple-english
3
+ description: Write responses in ASD-STE100 Simplified Technical English - short sentences, active voice, one idea per sentence, simple approved words. Use when the user asks for simple English, plain English, Simplified Technical English or STE, asks to simplify wording or write for non-native readers, or invokes /simple-english.
4
+ ---
5
+
6
+ # Global Instructions
7
+
8
+ ## Communication Style
9
+
10
+ Write all responses in ASD-STE100 Simplified Technical English:
11
+ - Use short, simple sentences (max ~25 words each).
12
+ - Use active voice.
13
+ - One instruction or idea per sentence.
14
+ - Use simple, approved words. Avoid jargon when a simpler word exists.
15
+ - Be specific and concrete. Avoid vague language.
File without changes