@tamsensedev/runner 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +5 -5
- package/README.md +49 -46
- package/dist/cli.js +976 -154
- package/dist/cli.js.map +1 -1
- package/dist/recorder.cjs +424 -0
- package/dist/recorder.cjs.map +1 -0
- package/library/.claude-plugin/plugin.json +5 -5
- package/library/THIRD_PARTY_NOTICES.md +123 -123
- package/library/agents/design-critic.md +2 -2
- package/library/agents/ui-tester.md +7 -4
- package/library/skills/accessibility/SKILL.md +1 -1
- package/library/skills/design-review/SKILL.md +1 -1
- package/library/skills/design-review/references/screenshot-procedure.md +13 -5
- package/library/skills/interface-design/SKILL.md +1 -1
- package/library/skills/spec-writing/SKILL.md +144 -144
- package/library/skills/systematic-debugging/SKILL.md +1 -1
- package/library/skills/task-interview/SKILL.md +84 -84
- package/library/skills/ui-testing/SKILL.md +10 -7
- package/library/skills/ui-testing/references/headless-check.md +26 -8
- package/library/skills/ui-testing/references/local-stand.md +51 -0
- package/library/skills/ui-testing/references/playwright-patterns.md +1 -1
- package/library/skills/ui-testing/references/recording.md +58 -0
- package/package.json +46 -45
|
@@ -1,123 +1,123 @@
|
|
|
1
|
-
# Third-party notices
|
|
2
|
-
|
|
3
|
-
The skills and agents in this folder are written for TAMsense, and many of them adapt open source work. Every adapted file ends with a "Sources:" or "Adapted from" line naming its upstream and what was changed. This file lists the upstream projects and their licenses.
|
|
4
|
-
|
|
5
|
-
## MIT License
|
|
6
|
-
|
|
7
|
-
The following projects are used under the MIT License. Their copyright notices:
|
|
8
|
-
|
|
9
|
-
| Project | Commit | Copyright |
|
|
10
|
-
|---|---|---|
|
|
11
|
-
| https://github.com/obra/superpowers | bb92a77741419a4ab5f06e711a283343f1ada0c3; b739a8af570e10a95898f2bdf6cec97467fa6c12 (writing-plans, for implementation-plan; writing-plans and the brainstorming builder check, for spec-writing) | Copyright (c) 2025 Jesse Vincent |
|
|
12
|
-
| https://github.com/mattpocock/skills | 5beb35b040e3de97e54fa9e386d7e42d15c295c2 | Copyright (c) 2026 Matt Pocock |
|
|
13
|
-
| https://github.com/addyosmani/agent-skills | aeac41d4d005999432bb7312f7ff06383a91d59d | Copyright (c) 2025 Addy Osmani |
|
|
14
|
-
| https://github.com/addyosmani/web-quality-skills | afa8da942115f2961fdbfa80807ea0b232ff6c00 | Copyright (c) 2026 Addy Osmani |
|
|
15
|
-
| https://github.com/affaan-m/ECC | 30b68924ae9729159f44326aa3134b1d9d67c0e2 | Copyright (c) 2026 Affaan Mustafa |
|
|
16
|
-
| https://github.com/anthropics/claude-code-security-review | 0c6a49f1fa56a1d472575da86a94dbc1edb78eda | Copyright (c) 2025 Anthropic |
|
|
17
|
-
| https://github.com/agamm/claude-code-owasp | 8ac7965caa212b4a850aff8d3df0081ab3fa9eed | Copyright (c) 2026 (no holder named) |
|
|
18
|
-
| https://github.com/VoltAgent/awesome-claude-code-subagents (surgeon-reviewer, from https://github.com/LucianFord/agent-pack) | 408d3c9eee2d0c75c12a3abb5de29e53c2ca6b9e | Copyright (c) 2025 VoltAgent |
|
|
19
|
-
| https://github.com/supabase/agent-skills | c9be0e931b7930f7d02126d04774d904c381e7d7 | Copyright (c) 2026 Supabase |
|
|
20
|
-
| https://github.com/prisma/skills | ba3f9d73200bbb62e49733ab93a961fd138a2c18 | Copyright (c) 2025 Prisma |
|
|
21
|
-
| https://github.com/testdino-hq/playwright-skill | 178d1cb537604279d7b54500c4823a6db42b9de6 | Copyright (c) 2026 TestDino |
|
|
22
|
-
| https://github.com/Leonxlnx/taste-skill | 6010f91a9935f1c167dfc500fb1a475681892e6b | Copyright (c) 2026 Leonxlnx |
|
|
23
|
-
| https://github.com/Dammyjay93/interface-design | 2f9be3206855bcb2d1d0af262c8bae25cba6658d | Copyright (c) 2026 Damola Akinleye |
|
|
24
|
-
| https://github.com/jakubkrehel/make-interfaces-feel-better | 35545ea1512ad59fa463e6b1f95ca9c052981fe6 | Copyright (c) 2026 Jakub Krehel |
|
|
25
|
-
| https://github.com/emilkowalski/skills | 2d228630ba1446365f614a108cb8252f1feda202 | Copyright (c) 2026 Emil Kowalski |
|
|
26
|
-
| https://github.com/vercel-labs/web-interface-guidelines | 434b7f91364665f2f733b310ec54809bf8f37937 | Copyright (c) 2025 Vercel Labs |
|
|
27
|
-
| https://github.com/ibelick/ui-skills | 2a7c96670506e3948c3b43dde66d5e16e47985f1 | Copyright (c) 2026 Julien Thibeaut |
|
|
28
|
-
| https://github.com/github/spec-kit | c06e6708122343d54ac5f7173ccd2c537d51e617 | Copyright GitHub, Inc. |
|
|
29
|
-
| https://github.com/bmad-code-org/BMAD-METHOD (text only; the project's name is a trademark and is not used) | 61e01f82644c4bb533750cfa0d6d61ab61d2cc9b | Copyright (c) 2025 BMad Code, LLC |
|
|
30
|
-
| https://github.com/gotalab/cc-sdd (requirements review gate, for spec-writing) | e2a0c671aef37a482404905b409ab5c27092b25b | Copyright (c) 2025 gotalab |
|
|
31
|
-
| https://github.com/Fission-AI/OpenSpec (spec and design templates, for spec-writing) | c04f30e57817422c1a107ea00a682c1d29a423ca | Copyright (c) 2024 OpenSpec Contributors |
|
|
32
|
-
|
|
33
|
-
The MIT License text, which applies to the portions taken from each project above:
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
37
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
38
|
-
in the Software without restriction, including without limitation the rights
|
|
39
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
40
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
41
|
-
furnished to do so, subject to the following conditions:
|
|
42
|
-
|
|
43
|
-
The above copyright notice and this permission notice shall be included in all
|
|
44
|
-
copies or substantial portions of the Software.
|
|
45
|
-
|
|
46
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
47
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
48
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
49
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
50
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
51
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
52
|
-
SOFTWARE.
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## Apache License 2.0
|
|
56
|
-
|
|
57
|
-
The following projects are used under the Apache License, Version 2.0. The full license text is in [licenses/Apache-2.0.txt](licenses/Apache-2.0.txt). Files adapted from them were modified, and each says so in its last line.
|
|
58
|
-
|
|
59
|
-
| Project | Commit | Copyright |
|
|
60
|
-
|---|---|---|
|
|
61
|
-
| https://github.com/anthropics/claude-plugins-official (feature-dev, code-simplifier, code-review, pr-review-toolkit, code-modernization, frontend-design) | dfffc8c43f48692db02eac092dbe208293fda224 | Anthropic, PBC |
|
|
62
|
-
| https://github.com/anthropics/skills (webapp-testing) | dbd4588f9e1033efb41dad4bef2f7947c8993d44 | Copyright 2026 Anthropic, PBC |
|
|
63
|
-
| https://github.com/getsentry/skills | f57ada2d0b640406ea7e25b11d636c530e77c58b | Sentry (no copyright line in the upstream LICENSE) |
|
|
64
|
-
| https://github.com/timescale/pg-aiguide | 187be00d317a51210c132010d947f4546ffb5eef | Copyright 2025 Timescale, Inc., d/b/a Tiger Data |
|
|
65
|
-
| https://github.com/pbakaus/impeccable | dad8dbb3aac21ad1fa236c110315ef4abece23e8 | Copyright 2025 Paul Bakaus |
|
|
66
|
-
| https://github.com/microsoft/playwright (test agents, ideas only) | | Microsoft Corporation |
|
|
67
|
-
| https://github.com/openai/codex (Plan Mode template and request_user_input tool) | 430a16799d90e296fb27b1e94f206023902b7e56 | Copyright 2025 OpenAI |
|
|
68
|
-
| https://github.com/humanlayer/humanlayer (create_plan command) | 99abe673498cf8bdcd5f989aebe9406a27185b3b | Copyright (c) 2024, humanlayer Authors |
|
|
69
|
-
|
|
70
|
-
### NOTICE of timescale/pg-aiguide
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
Copyright 2025 Timescale, Inc., d/b/a Tiger Data
|
|
74
|
-
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
75
|
-
this file except in compliance with the License. You may obtain a copy of the
|
|
76
|
-
License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
|
77
|
-
applicable law or agreed to in writing, software distributed under the License
|
|
78
|
-
is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
79
|
-
KIND, either express or implied. See the License for the specific language
|
|
80
|
-
governing permissions and limitations under the License.
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### NOTICE of pbakaus/impeccable
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
Third-Party Notices
|
|
87
|
-
|
|
88
|
-
This project includes content derived from third-party work, used under the
|
|
89
|
-
terms of its original license.
|
|
90
|
-
|
|
91
|
-
Platform Design Skills
|
|
92
|
-
|
|
93
|
-
The skill/reference/ios.md and skill/reference/android.md platform reference
|
|
94
|
-
files are distilled from ehmo's platform-design-skills (Apple Human Interface
|
|
95
|
-
Guidelines and Material Design 3 rules), rewritten in Impeccable's voice.
|
|
96
|
-
|
|
97
|
-
Original work: https://github.com/ehmo/platform-design-skills
|
|
98
|
-
Original license: MIT
|
|
99
|
-
Author: ehmo
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
The files named in that notice were not used here.
|
|
103
|
-
|
|
104
|
-
### NOTICE of openai/codex
|
|
105
|
-
|
|
106
|
-
```
|
|
107
|
-
OpenAI Codex
|
|
108
|
-
Copyright 2025 OpenAI
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
The rest of that notice is about code derived from Ratatui, which was not used here.
|
|
112
|
-
|
|
113
|
-
## MIT No Attribution
|
|
114
|
-
|
|
115
|
-
`skills/task-interview` adapts the corner checklist and the requirements analysis of https://github.com/awslabs/aidlc-workflows (commit 95d2b44d311365d0c3d8aa3d774e36082f9ac4af), Copyright Amazon.com, Inc. or its affiliates, under the MIT No Attribution license. That license asks for no attribution; it is named here so the source is easy to find.
|
|
116
|
-
|
|
117
|
-
## Creative Commons Attribution-ShareAlike 4.0
|
|
118
|
-
|
|
119
|
-
`skills/differential-security-review` and `skills/false-positive-check` are adapted from https://github.com/trailofbits/skills (commit 5c99c03fb8a9ea568432ecbcba5d86e9f4ac2bf0), made by Trail of Bits (differential-review by Omar Inuwa, fp-check by Maciej Domanski), under CC BY-SA 4.0. Both folders, including our changes, stay under CC BY-SA 4.0; the license text is in the `LICENSE` file inside each folder, and each file names what was changed.
|
|
120
|
-
|
|
121
|
-
## Ideas only
|
|
122
|
-
|
|
123
|
-
Ideas from these sources are restated in our own words, and no text was copied: the Karpathy coding guidelines (https://github.com/multica-ai/andrej-karpathy-skills) and the code-review command of https://github.com/anthropics/claude-code.
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
The skills and agents in this folder are written for TAMsense, and many of them adapt open source work. Every adapted file ends with a "Sources:" or "Adapted from" line naming its upstream and what was changed. This file lists the upstream projects and their licenses.
|
|
4
|
+
|
|
5
|
+
## MIT License
|
|
6
|
+
|
|
7
|
+
The following projects are used under the MIT License. Their copyright notices:
|
|
8
|
+
|
|
9
|
+
| Project | Commit | Copyright |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| https://github.com/obra/superpowers | bb92a77741419a4ab5f06e711a283343f1ada0c3; b739a8af570e10a95898f2bdf6cec97467fa6c12 (writing-plans, for implementation-plan; writing-plans and the brainstorming builder check, for spec-writing) | Copyright (c) 2025 Jesse Vincent |
|
|
12
|
+
| https://github.com/mattpocock/skills | 5beb35b040e3de97e54fa9e386d7e42d15c295c2 | Copyright (c) 2026 Matt Pocock |
|
|
13
|
+
| https://github.com/addyosmani/agent-skills | aeac41d4d005999432bb7312f7ff06383a91d59d | Copyright (c) 2025 Addy Osmani |
|
|
14
|
+
| https://github.com/addyosmani/web-quality-skills | afa8da942115f2961fdbfa80807ea0b232ff6c00 | Copyright (c) 2026 Addy Osmani |
|
|
15
|
+
| https://github.com/affaan-m/ECC | 30b68924ae9729159f44326aa3134b1d9d67c0e2 | Copyright (c) 2026 Affaan Mustafa |
|
|
16
|
+
| https://github.com/anthropics/claude-code-security-review | 0c6a49f1fa56a1d472575da86a94dbc1edb78eda | Copyright (c) 2025 Anthropic |
|
|
17
|
+
| https://github.com/agamm/claude-code-owasp | 8ac7965caa212b4a850aff8d3df0081ab3fa9eed | Copyright (c) 2026 (no holder named) |
|
|
18
|
+
| https://github.com/VoltAgent/awesome-claude-code-subagents (surgeon-reviewer, from https://github.com/LucianFord/agent-pack) | 408d3c9eee2d0c75c12a3abb5de29e53c2ca6b9e | Copyright (c) 2025 VoltAgent |
|
|
19
|
+
| https://github.com/supabase/agent-skills | c9be0e931b7930f7d02126d04774d904c381e7d7 | Copyright (c) 2026 Supabase |
|
|
20
|
+
| https://github.com/prisma/skills | ba3f9d73200bbb62e49733ab93a961fd138a2c18 | Copyright (c) 2025 Prisma |
|
|
21
|
+
| https://github.com/testdino-hq/playwright-skill | 178d1cb537604279d7b54500c4823a6db42b9de6 | Copyright (c) 2026 TestDino |
|
|
22
|
+
| https://github.com/Leonxlnx/taste-skill | 6010f91a9935f1c167dfc500fb1a475681892e6b | Copyright (c) 2026 Leonxlnx |
|
|
23
|
+
| https://github.com/Dammyjay93/interface-design | 2f9be3206855bcb2d1d0af262c8bae25cba6658d | Copyright (c) 2026 Damola Akinleye |
|
|
24
|
+
| https://github.com/jakubkrehel/make-interfaces-feel-better | 35545ea1512ad59fa463e6b1f95ca9c052981fe6 | Copyright (c) 2026 Jakub Krehel |
|
|
25
|
+
| https://github.com/emilkowalski/skills | 2d228630ba1446365f614a108cb8252f1feda202 | Copyright (c) 2026 Emil Kowalski |
|
|
26
|
+
| https://github.com/vercel-labs/web-interface-guidelines | 434b7f91364665f2f733b310ec54809bf8f37937 | Copyright (c) 2025 Vercel Labs |
|
|
27
|
+
| https://github.com/ibelick/ui-skills | 2a7c96670506e3948c3b43dde66d5e16e47985f1 | Copyright (c) 2026 Julien Thibeaut |
|
|
28
|
+
| https://github.com/github/spec-kit | c06e6708122343d54ac5f7173ccd2c537d51e617 | Copyright GitHub, Inc. |
|
|
29
|
+
| https://github.com/bmad-code-org/BMAD-METHOD (text only; the project's name is a trademark and is not used) | 61e01f82644c4bb533750cfa0d6d61ab61d2cc9b | Copyright (c) 2025 BMad Code, LLC |
|
|
30
|
+
| https://github.com/gotalab/cc-sdd (requirements review gate, for spec-writing) | e2a0c671aef37a482404905b409ab5c27092b25b | Copyright (c) 2025 gotalab |
|
|
31
|
+
| https://github.com/Fission-AI/OpenSpec (spec and design templates, for spec-writing) | c04f30e57817422c1a107ea00a682c1d29a423ca | Copyright (c) 2024 OpenSpec Contributors |
|
|
32
|
+
|
|
33
|
+
The MIT License text, which applies to the portions taken from each project above:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
37
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
38
|
+
in the Software without restriction, including without limitation the rights
|
|
39
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
40
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
41
|
+
furnished to do so, subject to the following conditions:
|
|
42
|
+
|
|
43
|
+
The above copyright notice and this permission notice shall be included in all
|
|
44
|
+
copies or substantial portions of the Software.
|
|
45
|
+
|
|
46
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
47
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
48
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
49
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
50
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
51
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
52
|
+
SOFTWARE.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Apache License 2.0
|
|
56
|
+
|
|
57
|
+
The following projects are used under the Apache License, Version 2.0. The full license text is in [licenses/Apache-2.0.txt](licenses/Apache-2.0.txt). Files adapted from them were modified, and each says so in its last line.
|
|
58
|
+
|
|
59
|
+
| Project | Commit | Copyright |
|
|
60
|
+
|---|---|---|
|
|
61
|
+
| https://github.com/anthropics/claude-plugins-official (feature-dev, code-simplifier, code-review, pr-review-toolkit, code-modernization, frontend-design) | dfffc8c43f48692db02eac092dbe208293fda224 | Anthropic, PBC |
|
|
62
|
+
| https://github.com/anthropics/skills (webapp-testing) | dbd4588f9e1033efb41dad4bef2f7947c8993d44 | Copyright 2026 Anthropic, PBC |
|
|
63
|
+
| https://github.com/getsentry/skills | f57ada2d0b640406ea7e25b11d636c530e77c58b | Sentry (no copyright line in the upstream LICENSE) |
|
|
64
|
+
| https://github.com/timescale/pg-aiguide | 187be00d317a51210c132010d947f4546ffb5eef | Copyright 2025 Timescale, Inc., d/b/a Tiger Data |
|
|
65
|
+
| https://github.com/pbakaus/impeccable | dad8dbb3aac21ad1fa236c110315ef4abece23e8 | Copyright 2025 Paul Bakaus |
|
|
66
|
+
| https://github.com/microsoft/playwright (test agents, ideas only) | | Microsoft Corporation |
|
|
67
|
+
| https://github.com/openai/codex (Plan Mode template and request_user_input tool) | 430a16799d90e296fb27b1e94f206023902b7e56 | Copyright 2025 OpenAI |
|
|
68
|
+
| https://github.com/humanlayer/humanlayer (create_plan command) | 99abe673498cf8bdcd5f989aebe9406a27185b3b | Copyright (c) 2024, humanlayer Authors |
|
|
69
|
+
|
|
70
|
+
### NOTICE of timescale/pg-aiguide
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
Copyright 2025 Timescale, Inc., d/b/a Tiger Data
|
|
74
|
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
75
|
+
this file except in compliance with the License. You may obtain a copy of the
|
|
76
|
+
License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
|
77
|
+
applicable law or agreed to in writing, software distributed under the License
|
|
78
|
+
is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
79
|
+
KIND, either express or implied. See the License for the specific language
|
|
80
|
+
governing permissions and limitations under the License.
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### NOTICE of pbakaus/impeccable
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
Third-Party Notices
|
|
87
|
+
|
|
88
|
+
This project includes content derived from third-party work, used under the
|
|
89
|
+
terms of its original license.
|
|
90
|
+
|
|
91
|
+
Platform Design Skills
|
|
92
|
+
|
|
93
|
+
The skill/reference/ios.md and skill/reference/android.md platform reference
|
|
94
|
+
files are distilled from ehmo's platform-design-skills (Apple Human Interface
|
|
95
|
+
Guidelines and Material Design 3 rules), rewritten in Impeccable's voice.
|
|
96
|
+
|
|
97
|
+
Original work: https://github.com/ehmo/platform-design-skills
|
|
98
|
+
Original license: MIT
|
|
99
|
+
Author: ehmo
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
The files named in that notice were not used here.
|
|
103
|
+
|
|
104
|
+
### NOTICE of openai/codex
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
OpenAI Codex
|
|
108
|
+
Copyright 2025 OpenAI
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
The rest of that notice is about code derived from Ratatui, which was not used here.
|
|
112
|
+
|
|
113
|
+
## MIT No Attribution
|
|
114
|
+
|
|
115
|
+
`skills/task-interview` adapts the corner checklist and the requirements analysis of https://github.com/awslabs/aidlc-workflows (commit 95d2b44d311365d0c3d8aa3d774e36082f9ac4af), Copyright Amazon.com, Inc. or its affiliates, under the MIT No Attribution license. That license asks for no attribution; it is named here so the source is easy to find.
|
|
116
|
+
|
|
117
|
+
## Creative Commons Attribution-ShareAlike 4.0
|
|
118
|
+
|
|
119
|
+
`skills/differential-security-review` and `skills/false-positive-check` are adapted from https://github.com/trailofbits/skills (commit 5c99c03fb8a9ea568432ecbcba5d86e9f4ac2bf0), made by Trail of Bits (differential-review by Omar Inuwa, fp-check by Maciej Domanski), under CC BY-SA 4.0. Both folders, including our changes, stay under CC BY-SA 4.0; the license text is in the `LICENSE` file inside each folder, and each file names what was changed.
|
|
120
|
+
|
|
121
|
+
## Ideas only
|
|
122
|
+
|
|
123
|
+
Ideas from these sources are restated in our own words, and no text was copied: the Karpathy coding guidelines (https://github.com/multica-ai/andrej-karpathy-skills) and the code-review command of https://github.com/anthropics/claude-code.
|
|
@@ -14,7 +14,7 @@ The caller should give you: the repository path, the base branch or the list of
|
|
|
14
14
|
|
|
15
15
|
1. **Scope.** Find the changed UI files against the base branch and map them to screens. Look only at those screens.
|
|
16
16
|
2. **Design language.** Read the project's design sources (DESIGN.md, token and theme files, the component library, one or two sibling screens) and write a short summary of the decisions that govern these screens. Review against them, not against a generic ideal.
|
|
17
|
-
3. **Render.** Stop only processes you started, by process id, never by name. Follow the `design-review` skill's screenshot procedure, which builds on the `ui-testing` headless check: a script in a new folder under the OS temp directory starts the app with the project's own command, and captures each screen at 1440, 768 and 390px wide (first screen and full page), plus empty, loading, error and long-content states via response interception, hover and keyboard focus on the main controls, and dark mode if the product has it. Make sure the server is stopped afterwards.
|
|
17
|
+
3. **Render.** Stop only processes you started, by process id, never by name. Follow the `design-review` skill's screenshot procedure, which builds on the `ui-testing` headless check: a script in a new folder under the OS temp directory starts the app with the project's own command, and captures each screen at 1440, 768 and 390px wide (first screen and full page), plus empty, loading, error and long-content states via response interception, hover and keyboard focus on the main controls, and dark mode if the product has it. The browser is recorded for the task: name the render after the variant and the question ("Design option 2", "Denser invoices table") and mark each state. Make sure the server is stopped afterwards.
|
|
18
18
|
4. **Look.** Open every screenshot with Read. Run the passes in the `design-review` skill's critique reference: the whole screen first (one second then five, squint, cover the name, edges, space, type, colour, sameness, phone, collisions, substance), then the lenses (hierarchy, type and colour, surfaces, layout and rhythm, states and polish, content and honesty, system fit). For app screens add the `app-screens` questions.
|
|
19
19
|
5. **Evidence.** Keep a finding only if you can cite the screenshot (file, width, state) or a `file:line` that breaks a documented decision, say what it costs the user, and name one correction in the project's own tokens and components. Try to falsify each finding (deliberate exception, sibling screen does the same, outside the changed lines, duplicate root cause) and drop what does not survive. Taste alone is not a finding. Patterns the design system uses are decisions, even if `avoiding-generic-ai-design` lists them.
|
|
20
20
|
|
|
@@ -44,7 +44,7 @@ Blocker: broken, clipped, unreachable, unreadable, missing states for fetched da
|
|
|
44
44
|
## What not to do
|
|
45
45
|
|
|
46
46
|
- Do not edit, create or delete files in the repository. Scripts, screenshots and sign-in state live only in the temp directory.
|
|
47
|
-
- Do not
|
|
47
|
+
- Do not add packages, download browsers, push, commit, or open pull requests. Installing the project's own dependencies from its lockfile is fine.
|
|
48
48
|
- Do not use external services or production URLs; only the local app.
|
|
49
49
|
- Do not review screens the change did not touch, except one line under "Outside scope" if something is badly broken.
|
|
50
50
|
- Do not report personal preference as a finding, and do not invent problems to fill the list. "No supported findings" is a valid result.
|
|
@@ -15,9 +15,11 @@ The caller should give you the task or acceptance criteria, the repository folde
|
|
|
15
15
|
1. Load the `ui-testing` skill with the Skill tool and follow it. Load `accessibility` too when the change adds or alters interactive controls, forms, dialogs or colours. The skills' reference files (the headless check script, Playwright patterns, the keyboard pass) are in the folders the Skill tool reports.
|
|
16
16
|
2. Write the scenario list first: the changed flow, its loading, empty and error states, a 390 px width if layout changed, keyboard use of new controls.
|
|
17
17
|
3. Find the project's E2E setup and how the app starts (scripts, CI workflow, `.env.example`). Check required environment variables by name only.
|
|
18
|
+
Start only a local copy from the task folder, as the `ui-testing` skill's `references/local-stand.md` says; if Docker is not running, there is no local setup or the settings point outside this computer, start nothing and return `UI check: could not run` with the exact reason and what a person should do.
|
|
18
19
|
4. Run the related E2E specs headless if a suite exists; check what it does not cover with the headless check script written to a new folder in the OS temp directory.
|
|
19
|
-
5.
|
|
20
|
-
6.
|
|
20
|
+
5. Every browser you open is recorded for the task. In your own scripts, open contexts through the recorder in `TAMSENSE_RECORDER` with a title named after the goal and attempt ("Feature testing", "Second attempt at feature testing") and a one-line purpose, call `mark` at each step of a scenario, and add `video: true` for canvas, maps, video players or iframes from another site, or when the caller asks for a video (the `ui-testing` skill's `references/recording.md`).
|
|
21
|
+
6. Open every screenshot with Read and describe what it shows.
|
|
22
|
+
7. Stop every server you started, by its process id only (never `taskkill /IM`, `pkill` or `killall`: other programs on this computer may run on the same runtime), delete your temp folders, and confirm with `git status` that the repository is unchanged.
|
|
21
23
|
|
|
22
24
|
If the skills cannot be loaded, the rules below still apply and you write a minimal Node.js Playwright script yourself, in a temp folder, resolving Playwright from the project.
|
|
23
25
|
|
|
@@ -26,6 +28,7 @@ If the skills cannot be loaded, the rules below still apply and you write a mini
|
|
|
26
28
|
```
|
|
27
29
|
UI check: passed | failed | could not run
|
|
28
30
|
How: <commands>, browser, widths
|
|
31
|
+
Recordings: <titles of the replays and videos, and their paths from closeRecorded>
|
|
29
32
|
Scenarios:
|
|
30
33
|
- <scenario>: pass | fail | not checked (reason). Evidence: <what the screenshot or log shows>
|
|
31
34
|
Findings:
|
|
@@ -41,7 +44,7 @@ Keep it short: quote only the error lines that matter, never whole logs, and nev
|
|
|
41
44
|
|
|
42
45
|
- Do not edit, create or delete files in the repository, including tests, snapshots and config. Scratch scripts, screenshots, traces and auth state go to the temp folder.
|
|
43
46
|
- Do not open visible windows: no `--headed`, `--ui`, `--debug`, `show-report`, `show-trace`, `cypress open`. Run Playwright with `--reporter=line` and `PW_TEST_HTML_REPORT_OPEN=never`, and start dev servers with `BROWSER=none`.
|
|
44
|
-
- Do not
|
|
45
|
-
- Do not point the check at staging or production, and do not
|
|
47
|
+
- Do not add packages or download browsers; installing the project's own dependencies from its lockfile is fine. If no headless browser is available, say so and stop.
|
|
48
|
+
- Do not point the check at staging or production, and do not start the app when its settings point at a shared backend or database.
|
|
46
49
|
- Do not skip, `fixme` or loosen failing tests, and do not report a pass for anything you did not see. If the app cannot start, report the exact reason (missing variables, services, build error) with the last relevant log lines.
|
|
47
50
|
- Do not push, commit or comment anywhere.
|
|
@@ -97,7 +97,7 @@ Accessibility lint rules, component or E2E tests with axe, `pa11y` or Lighthouse
|
|
|
97
97
|
When the app can be started (see the `ui-testing` skill):
|
|
98
98
|
|
|
99
99
|
- **axe:** the headless check in the `ui-testing` skill (its `references/headless-check.md`) runs axe-core on each page when the project already has the `axe-core` package. If the project has `@axe-core/playwright`, use it in its own tests instead. Never download axe or a browser just for this.
|
|
100
|
-
- **Keyboard pass:** use the snippet in [references/wcag-checks.md](references/wcag-checks.md#keyboard-pass-in-a-headless-browser) as the check's `steps` to record the focus order, whether each focused element shows a visible focus style, and whether Escape closes the open dialog and focus returns.
|
|
100
|
+
- **Keyboard pass:** use the snippet in [references/wcag-checks.md](references/wcag-checks.md#keyboard-pass-in-a-headless-browser) as the check's `steps` to record the focus order, whether each focused element shows a visible focus style, and whether Escape closes the open dialog and focus returns. The pass is recorded for the task like any browser run: set the check's title to "Keyboard pass" and its purpose to what you checked.
|
|
101
101
|
|
|
102
102
|
Automated tools find roughly a third of WCAG problems. Zero axe violations is not conformance; a violation in third-party markup you do not control is still worth naming, but separately.
|
|
103
103
|
|
|
@@ -39,7 +39,7 @@ You review against the product's own intent, not a generic ideal. A deliberately
|
|
|
39
39
|
|
|
40
40
|
Follow [references/screenshot-procedure.md](references/screenshot-procedure.md):
|
|
41
41
|
|
|
42
|
-
- Start the app and drive it headless as `ui-testing` describes (its headless check script, outputs in a temp folder).
|
|
42
|
+
- Start the app and drive it headless as `ui-testing` describes (its headless check script, outputs in a temp folder). The browser is recorded for the task: name the render after the variant and the question, and mark each state.
|
|
43
43
|
- For each changed screen: 1440, 768 and 390px wide, first screen and full page.
|
|
44
44
|
- Key states: empty, loading, error, long content (worst-case data), plus hover and keyboard focus on the main controls, and dark mode if the product has it.
|
|
45
45
|
- When the change restyles an existing screen, compare with untouched sibling screens and with the base branch's code (`git diff <base>...HEAD` on the styles); do not switch branches in the working tree.
|
|
@@ -8,6 +8,8 @@ Everything about running the app comes from the `ui-testing` skill and holds her
|
|
|
8
8
|
|
|
9
9
|
If the project uses Storybook for the changed components, story URLs (`/iframe.html?id=<story-id>`) are often the quickest way to see each state; render them the same way.
|
|
10
10
|
|
|
11
|
+
In a TAMsense run the browser is recorded for the task too: open contexts through the recorder with a title and a purpose, as [the ui-testing recording reference](../../ui-testing/references/recording.md) shows. For a design check the title names the variant and the purpose names the question, for example "Design option 2" and "Denser table for the invoices list, compared with option 1". Mark each state as you reach it (`mark('Empty state')`, `mark('Error state')`), and add `video: true` when the screen draws on a canvas, shows a map or a video, or embeds another site.
|
|
12
|
+
|
|
11
13
|
## What to capture
|
|
12
14
|
|
|
13
15
|
For each changed screen:
|
|
@@ -35,6 +37,7 @@ Use the script in the `ui-testing` skill's `references/headless-check.md`, writt
|
|
|
35
37
|
|
|
36
38
|
- `CONFIG.widths`: `[1440, 768, 390]`.
|
|
37
39
|
- `CONFIG.paths`: the routes of the changed screens.
|
|
40
|
+
- `CONFIG.title` and `CONFIG.purpose`: the variant and the question this render answers ("Design option 1", "Checking the billing page after the redesign").
|
|
38
41
|
- If the screens need a signed-in user, follow the auth section of `ui-testing` (a storage state saved in the temp folder, passed to `browser.newContext`).
|
|
39
42
|
- If `CHROME_PATH` is set, add `executablePath: process.env.CHROME_PATH` to the launch options.
|
|
40
43
|
- For dark mode, add `colorScheme: 'dark'` to `browser.newContext`; for reduced motion, `reducedMotion: 'reduce'`.
|
|
@@ -42,12 +45,15 @@ Use the script in the `ui-testing` skill's `references/headless-check.md`, writt
|
|
|
42
45
|
Its own screenshot is the full page in the final state of `steps`. Capture the first screen and the states inside `steps`, and leave the page in its normal state at the end:
|
|
43
46
|
|
|
44
47
|
```js
|
|
45
|
-
async function steps(page, { path, width }) {
|
|
48
|
+
async function steps(page, { path, width, mark }) {
|
|
46
49
|
const slug = path.replace(/[^a-z0-9]+/gi, '-').replace(/^-+|-+$/g, '') || 'home'
|
|
47
|
-
const shot = (state) =>
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
const shot = async (state) => {
|
|
51
|
+
await mark(`${state} state`)
|
|
52
|
+
await page.screenshot({
|
|
53
|
+
path: join(CONFIG.outDir, `${slug}-${width}-${state}.png`),
|
|
54
|
+
animations: 'disabled',
|
|
55
|
+
})
|
|
56
|
+
}
|
|
51
57
|
|
|
52
58
|
await page.evaluate(async () => { await document.fonts.ready })
|
|
53
59
|
await shot('fold')
|
|
@@ -106,6 +112,8 @@ If the data is rendered on the server and cannot be intercepted in the browser,
|
|
|
106
112
|
|
|
107
113
|
Files are named `<screen>-<width>-<state>.png` (for example `billing-390-error.png`) so findings can cite them. Put the temp folder path in the report, describe what each cited screenshot shows, and delete the folder when the step ends unless the task asks to keep artifacts.
|
|
108
114
|
|
|
115
|
+
When you attach screenshots to the task with `attach_screenshot`, give each a title and a purpose that say what it shows and why: "Design option 1" with "Billing page at 1440, the denser table", not "billing-1440-fold". The replays of the render are attached by themselves.
|
|
116
|
+
|
|
109
117
|
## When rendering is impossible
|
|
110
118
|
|
|
111
119
|
If the app needs services that are not available, the build fails, Playwright is not installed (neither in the project nor through `TAMSENSE_PLAYWRIGHT`), or no browser can run: say exactly that in the report, review from the code, and mark every visual finding as inferred rather than seen.
|
|
@@ -110,7 +110,7 @@ Exact default numbers are in [references/craft-defaults.md](references/craft-def
|
|
|
110
110
|
Code review of your own CSS will read your intentions into it. Look at pixels.
|
|
111
111
|
|
|
112
112
|
1. Start the app as `ui-testing` describes (dev server, seed data, login).
|
|
113
|
-
2. Take screenshots of each changed screen at 1440, 768 and 390px wide, plus the states you built, following the procedure in `design-review`.
|
|
113
|
+
2. Take screenshots of each changed screen at 1440, 768 and 390px wide, plus the states you built, following the procedure in `design-review`. When you try several directions, number them ("Design option 1", "Design option 2") in the recordings and in the screenshots you attach, each with a purpose that says what it tries.
|
|
114
114
|
3. Open the images and judge them: does the focal element win, do edges line up, does the phone layout work, is any text clipped or overlapping, does it look like the rest of the product?
|
|
115
115
|
4. Fix the three worst problems, take new screenshots, look again. Three rounds at most.
|
|
116
116
|
|