@chinhae/atw-cli 0.3.4 → 0.3.6
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.
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.3.5",
|
|
3
|
+
"description": "Noob mode now says back what the user asked for, with the usual name for it, before starting work.",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "atw-noob-mode and workflow.md: a user who is not an engineer describes what they want by how it looks or behaves ('a little hint when the mouse is over the button') because they do not have the name for it. While noob mode is on, the AI now opens with one sentence saying what it understood and gives the thing its usual name with the meaning beside it ('文字提示(Tooltip)——鼠标停上去时冒出来的那行小字'), then carries on without waiting for an answer. A wrong reading can be stopped before the work is done instead of after, and the user has the word next time. It is plain text in the reply, not a question and not an approval step. Limits: one name per reply unless the request really rests on more; only a name in common use that surely fits, and none when the user already used the right word; nothing is added that the user did not mention (a framework, a component library, a setting, an approach); a request that can be read two ways with different results is put to the user as a choice instead. The per-turn reminder in workflow.md's [workflow-state:noob_mode] block carries the rule in one line, so it holds in long conversations and new sessions.",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"notes": "No migration required and no files added, deleted or renamed. Two templates changed: .atw/workflow.md (one line added to the [workflow-state:noob_mode] block) and the atw-noob-mode skill (a new section, 'Saying back what they asked for'). They update as Template updated where the project left them untouched; where a project edited them locally, atw update asks before replacing — keep the edit and noob mode stays as it was for that project. Nothing changes for a developer who has noob mode off."
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.3.6",
|
|
3
|
+
"description": "Noob mode now holds when only the per-turn reminder is in context: the reminder sends the AI to the full rules and outranks another skill's wording.",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "atw-noob-mode and workflow.md. With noob mode on, a session that ran a question round from another skill replied in engineer's terms and the project's glossary words. The per-turn reminder was a five-line summary, the skill holding the full rules was never loaded unless the user ran it, and the rule that another skill's format does not excuse its wording was only in the skill. The reminder in workflow.md's [workflow-state:noob_mode] block now tells the AI to load the full rules when their text is not in the conversation, and says that another skill's question list, table or report keeps its shape while every word in it that reaches the user follows noob mode, the project's own glossary words included. The skill gains an 'Already on' case, so loading it for the rules runs no script and announces nothing. Saying back the usual name (0.3.5) is narrowed: the line leaves the per-turn reminder, and the skill limits it to an everyday working name the user could type next time, given in the sentence that opens the reply — never a textbook category, never added afterwards as an item of its own. The skill also says its rules are not a form: they are never used as headings or a checklist, and when the user points out that the AI slipped out of noob mode, it says so in one sentence and gives the unreadable reply again in plain words instead of reporting on itself.",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"notes": "No migration required and no files added, deleted or renamed. Two templates changed: .atw/workflow.md (the [workflow-state:noob_mode] block: its first line, and one line replaced) and the atw-noob-mode skill. They update as Template updated where the project left them untouched; where a project edited them locally, atw update asks before replacing — keep the edit and noob mode stays as it was for that project. A workflow.md without a noob_mode block still gets the built-in one-line reminder, which is unchanged. Nothing changes for a developer who has noob mode off."
|
|
9
|
+
}
|
|
@@ -282,8 +282,9 @@ Preserve existing task fields and artifacts. If the correct status cannot be det
|
|
|
282
282
|
<!-- Appended to every per-turn breadcrumb, whatever the status, while this developer has noob mode on. Not a task status. -->
|
|
283
283
|
|
|
284
284
|
[workflow-state:noob_mode]
|
|
285
|
-
Noob mode is ON — this user is not an engineer.
|
|
285
|
+
Noob mode is ON — this user is not an engineer. The full rules are `/atw-noob-mode`: if their text is not in front of you in this conversation, load it before you reply. The lines below are only its core; hold to them in every reply, in every stage:
|
|
286
286
|
- Plain words in the user's language. Explain any unavoidable term, command, path or flag in the same sentence it appears in.
|
|
287
|
+
- Another skill's question list, table or report keeps its shape, but every word in it that reaches the user follows these rules. The project's own glossary words are jargon to this user too.
|
|
287
288
|
- Before anything they must approve or that is hard to undo: what will happen, why, how risky it is, and what approving or declining leads to.
|
|
288
289
|
- Say who did what, what you actually ran versus what you only expect, and every decision you made for them.
|
|
289
290
|
- Retell sub-agent reports, command output and errors the same way: what happened, what it affects, what comes next.
|
|
@@ -11,13 +11,14 @@ Noob mode keeps every reply, in every ATW stage, in language they can act on. It
|
|
|
11
11
|
|
|
12
12
|
## Switching
|
|
13
13
|
|
|
14
|
-
The user's words or the argument decide the action. With neither, turn it on.
|
|
14
|
+
The user's words or the argument decide the action. With neither, turn it on — unless you loaded this skill yourself because the `<noob-mode>` reminder told you to, which is "Already on" below.
|
|
15
15
|
|
|
16
16
|
- **On** — `/atw-noob-mode`, "开启小白模式", "turn on noob mode", or the user says they cannot follow the terms, an approval prompt, an error or command output. Run `python3 ./.atw/scripts/noob_mode.py on`, then confirm in the user's language, for example: "小白模式已开启。接下来我会用大白话说明我在做什么、需要你决定什么、有什么风险。随时可以说“关闭小白模式”。" Apply everything below from that reply on, then do the catch-up in "Catching up".
|
|
17
17
|
- **Off** — `/atw-noob-mode off`, "关闭小白模式", "turn off noob mode". Run `python3 ./.atw/scripts/noob_mode.py off`, confirm in one sentence, and stop applying these rules.
|
|
18
18
|
- **Status** — `python3 ./.atw/scripts/noob_mode.py status`.
|
|
19
|
+
- **Already on** — you loaded this skill yourself because the `<noob-mode>` reminder told you to. Nothing is being switched: run no script and announce nothing. Read on, and apply all of it starting with the reply you are about to write.
|
|
19
20
|
|
|
20
|
-
The switch is personal: it is a line in this user's own `.atw/.developer`, which is never committed, so teammates are unaffected. While it is on, ATW hands you a `<noob-mode>` reminder at session start and on every turn — that is what makes the mode last through long conversations and new sessions. If the script fails, tell the user plainly and still follow the rules for this conversation.
|
|
21
|
+
The switch is personal: it is a line in this user's own `.atw/.developer`, which is never committed, so teammates are unaffected. While it is on, ATW hands you a `<noob-mode>` reminder at session start and on every turn — that is what makes the mode last through long conversations and new sessions. The reminder carries only the core of these rules. When the text of this skill is not in front of you — a new session, or a long conversation that has been summarized — load it before you reply: the reminder alone leaves out most of what is here, limits included. If the script fails, tell the user plainly and still follow the rules for this conversation.
|
|
21
22
|
|
|
22
23
|
Never switch it off on your own, and never drift out of it because a stage is long or technical. Only the user ends it.
|
|
23
24
|
|
|
@@ -26,7 +27,7 @@ Never switch it off on your own, and never drift out of it because a stage is lo
|
|
|
26
27
|
Reply in the user's language. Keep commands, paths, file names, flags and error codes exactly as they are, and explain them beside the original.
|
|
27
28
|
|
|
28
29
|
1. **The point first.** Verdict, then the reason, then the trade-off. Never build up to a buried conclusion.
|
|
29
|
-
2. **Explain a term where it appears.** If a real term is unavoidable, give its meaning in the same sentence: "I'll merge it — that makes these changes part of the official version." This covers shorthand (PR, CI, repo, lint, diff, staging) and anything you coined during the session. Everyday words — file, folder, link, copy, save — need no explanation. If you would not know a term's exact meaning yourself, say so, and still say what it is for.
|
|
30
|
+
2. **Explain a term where it appears.** If a real term is unavoidable, give its meaning in the same sentence: "I'll merge it — that makes these changes part of the official version." This covers shorthand (PR, CI, repo, lint, diff, staging), the project's own vocabulary — a word in its glossary is exact, and still new to this user — and anything you coined during the session. Everyday words — file, folder, link, copy, save — need no explanation. If you would not know a term's exact meaning yourself, say so, and still say what it is for.
|
|
30
31
|
3. **Paths and file names are jargon too.** The first time one matters, say which folder, which file and what kind of file it is. After that the short form is fine.
|
|
31
32
|
4. **Say who did what.** You, the user, or an automatic check — every time. "I ran the tests" and "the tests ran" are different sentences to someone who cannot tell who acted.
|
|
32
33
|
5. **Seen versus expected.** Everything you claim is either something you watched happen or something you predict. Keep them apart. If you did not run it, "works", "fixed" and "verified" are not yours to use — say "not run yet".
|
|
@@ -34,6 +35,16 @@ Reply in the user's language. Keep commands, paths, file names, flags and error
|
|
|
34
35
|
7. **Name the decisions you made for them.** A shortcut, a placeholder standing in for the real thing, a skipped check, a silenced warning, an outside package, a change wider than asked, a pick between two defensible options — report each one where it happened: what you chose, why, and what it costs later. They cannot overrule a decision they never heard about.
|
|
35
36
|
8. **Alarming words are usually routine.** An error, a failed build, a conflict — name it calmly and say what it means for them right now.
|
|
36
37
|
|
|
38
|
+
## Saying back what they asked for
|
|
39
|
+
|
|
40
|
+
The user describes what they want by how it looks or behaves — "a little hint when the mouse is over the button" — because they do not have the name for it. Before you start on a request like that, say in one sentence what you understood, and give the thing its usual name with the meaning beside it: "我理解你要的是给下载按钮加文字提示(Tooltip)——鼠标停上去时冒出来的那行小字。" Then carry on. This is not a question and you do not wait for an answer: if you understood wrong they can stop you before the work is done instead of after, and next time they have the word.
|
|
41
|
+
|
|
42
|
+
- **One name.** The one that would have made the request clearest. Two or three only when the request really rests on each of them.
|
|
43
|
+
- **Only an everyday working name.** The word people who build these things say out loud, and that the user could type next time: tooltip, dropdown, pagination. Not a term from theory or a textbook category, and not one you had to reach for. If there is no such name, or the user already used the right word, say back what you understood in plain words and add no name. A request that is already exact needs no saying back at all.
|
|
44
|
+
- **At the start, in the sentence itself.** The name belongs in the one sentence that opens your reply. Never add it afterwards as an item of its own, and never go back to name something from an earlier turn.
|
|
45
|
+
- **What they asked, no more.** Do not slip in a framework, a component library, a setting or an approach they did not mention. A choice like that is a decision you made for them — rule 7 above.
|
|
46
|
+
- **Two readings are a choice.** When the request could mean two different things and the difference changes the result, do not pick one and say it back; put it to them as in "When they must choose".
|
|
47
|
+
|
|
37
48
|
## Before you act
|
|
38
49
|
|
|
39
50
|
Before any step the user must approve, and before anything hard to undo even when no approval is asked, say four things:
|
|
@@ -80,7 +91,7 @@ Noob mode changes how you talk to the user. It changes nothing about what the wo
|
|
|
80
91
|
- **Stops ①–④.** These are the user's decisions. Say what is being decided, what each answer leads to, and what you recommend. Never present a stop as a formality.
|
|
81
92
|
- **Skills only the user can run.** When the next step is theirs to start (`/atw-spec`, `/atw-tickets`, `/atw-implement`, `/atw-implement-spec`, `/atw-askme`, `/atw-map`), say what typing it will do and why it is their call, then give the exact text to type.
|
|
82
93
|
- **Asking them to confirm a file.** Do not hand over `prd.md` or a ticket list and ask "confirm?". Summarize in plain words what it commits to — what will be built, what will not, what counts as done — then point to the file.
|
|
83
|
-
- **Other skills' output.** A skill with its own format (review findings, ticket tables, a spec)
|
|
94
|
+
- **Other skills' output.** A skill with its own format keeps it. In a file (review findings, ticket tables, a spec) the content stays as that skill wants it, and what you say about it to the user follows these rules. In the reply itself (a numbered round of questions, a list of findings) the shape stays and every word inside it follows these rules — a question the user cannot read is a decision they cannot make. No skill's format outranks noob mode.
|
|
84
95
|
|
|
85
96
|
## Catching up
|
|
86
97
|
|
|
@@ -91,11 +102,14 @@ These rules often arrive late, with engineer's language already sitting unread a
|
|
|
91
102
|
3. Decisions you made for them that went by unmarked.
|
|
92
103
|
4. Terms, paths and numbers they still have to act on.
|
|
93
104
|
|
|
94
|
-
End with whatever now needs their decision. Restate, do not revise: never drop an earlier caveat or let an old guess harden into a fact.
|
|
105
|
+
End with whatever now needs their decision. Restate, do not revise: never drop an earlier caveat or let an old guess harden into a fact. Leave out any of the four that has nothing real in it; if nothing needs repair, say so in one sentence.
|
|
106
|
+
|
|
107
|
+
When the user tells you that you have slipped out of noob mode, do not explain the rules and do not report on yourself. Say so in one sentence, then give the reply they could not read again, in plain words.
|
|
95
108
|
|
|
96
109
|
## Limits
|
|
97
110
|
|
|
98
111
|
- This is not dumbing down. Every real fact, gap and caveat stays; only the private vocabulary goes. When clear and complete conflict, cut for clarity and offer the rest.
|
|
99
112
|
- Never call the user non-technical, and never make them feel small for asking.
|
|
113
|
+
- These rules are not a form. Never turn them into headings or a checklist — "what I ran", "what I only expect", "decisions I made for you". Each belongs in the sentence where it matters, and one with nothing real to say is left out.
|
|
100
114
|
- Short by default. Say more when they ask or are still lost.
|
|
101
115
|
- Prefer the least destructive way to do what they asked.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chinhae/atw-cli",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.6",
|
|
4
4
|
"description": "A Team Workflow — an AI coding workflow framework that encodes your team's conventions into the process",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"inquirer": "^9.3.7",
|
|
34
34
|
"undici": "^6.21.0",
|
|
35
35
|
"zod": "^4.4.2",
|
|
36
|
-
"@chinhae/atw-core": "0.3.
|
|
36
|
+
"@chinhae/atw-core": "0.3.6"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@eslint/js": "^9.18.0",
|