humanpages 1.3.0 → 1.4.2
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/dist/tools.js +155 -73
- package/package.json +3 -4
- package/playbooks/community-management.md +0 -210
- package/playbooks/competitor-monitoring.md +0 -193
- package/playbooks/directory-submissions.md +0 -331
- package/playbooks/localization.md +0 -199
- package/playbooks/qa-testing.md +0 -187
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
# Localization Review Playbook
|
|
2
|
-
|
|
3
|
-
Hire a native speaker to review your product's localization in context. This goes beyond translation — a human uses the actual product and flags text that sounds unnatural, UI elements that break with longer strings, cultural mismatches, and formatting issues specific to their locale.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## When to Use
|
|
8
|
-
|
|
9
|
-
- A new language has been added to the product
|
|
10
|
-
- A release includes new user-facing strings that have been machine-translated
|
|
11
|
-
- Users in a specific locale report that something "sounds wrong"
|
|
12
|
-
- You're launching in a new market and need cultural/linguistic validation
|
|
13
|
-
- Date, currency, or number formatting needs locale-specific verification
|
|
14
|
-
|
|
15
|
-
## Why a Human Is Needed
|
|
16
|
-
|
|
17
|
-
Machine translation produces grammatically correct text that often sounds robotic or culturally off. Only a native speaker can judge whether a translated string sounds natural in context. Beyond language, localization involves checking that dates, currencies, and numbers follow local conventions, that text fits within UI elements (German and Finnish strings are often 30-40% longer than English), and that imagery or idioms are culturally appropriate. This requires a human navigating every screen.
|
|
18
|
-
|
|
19
|
-
## Search Criteria
|
|
20
|
-
|
|
21
|
-
**Primary search (language-specific):**
|
|
22
|
-
```json
|
|
23
|
-
{
|
|
24
|
-
"skill": "translation",
|
|
25
|
-
"available_now": true,
|
|
26
|
-
"limit": 10
|
|
27
|
-
}
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
**Fallback search:**
|
|
31
|
-
```json
|
|
32
|
-
{
|
|
33
|
-
"skill": "localization",
|
|
34
|
-
"available_now": true,
|
|
35
|
-
"limit": 10
|
|
36
|
-
}
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
**Second fallback (for specific languages, search by language name):**
|
|
40
|
-
```json
|
|
41
|
-
{
|
|
42
|
-
"skill": "[LANGUAGE_NAME]",
|
|
43
|
-
"available_now": true,
|
|
44
|
-
"limit": 10
|
|
45
|
-
}
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Example: `{ "skill": "Spanish", ... }`, `{ "skill": "Japanese", ... }`
|
|
49
|
-
|
|
50
|
-
When reviewing candidates, confirm they are a **native speaker** of the target language, not just someone who lists it as a skill.
|
|
51
|
-
|
|
52
|
-
## Candidate Evaluation
|
|
53
|
-
|
|
54
|
-
Priority criteria when reviewing `get_human_profile` results:
|
|
55
|
-
|
|
56
|
-
1. **Native speaker** — must be a native speaker of the target language, not just bilingual
|
|
57
|
-
2. **Locale specificity** — Latin American Spanish differs from European Spanish; Brazilian Portuguese from European Portuguese. Match the candidate to your target market
|
|
58
|
-
3. **Technical product familiarity** — a candidate who uses similar products will catch more contextual issues
|
|
59
|
-
4. **Attention to detail** — localization review is meticulous work; look for QA or editorial backgrounds
|
|
60
|
-
5. **Screenshot capability** — they need to be able to capture and annotate screenshots
|
|
61
|
-
|
|
62
|
-
## Job Offer Template
|
|
63
|
-
|
|
64
|
-
**Title:** Localization review — [PRODUCT_NAME] in [LANGUAGE] ([LOCALE])
|
|
65
|
-
|
|
66
|
-
**Description:**
|
|
67
|
-
```
|
|
68
|
-
Review the [LANGUAGE] localization of [PRODUCT_NAME] ([PRODUCT_URL])
|
|
69
|
-
as a native [LANGUAGE] speaker from [COUNTRY/REGION].
|
|
70
|
-
|
|
71
|
-
What to do:
|
|
72
|
-
1. Go through every screen and feature of the product in [LANGUAGE]
|
|
73
|
-
2. For each issue found, document it in the table format below
|
|
74
|
-
3. Take annotated screenshots showing the issue in context
|
|
75
|
-
|
|
76
|
-
Issue categories to check:
|
|
77
|
-
- **Translation quality**: Unnatural phrasing, overly literal translations,
|
|
78
|
-
wrong register (too formal/informal), inconsistent terminology
|
|
79
|
-
- **Truncation/overflow**: Text cut off, overlapping other elements,
|
|
80
|
-
or breaking the layout
|
|
81
|
-
- **Formatting**: Dates, times, currencies, numbers, addresses not
|
|
82
|
-
matching [LOCALE] conventions
|
|
83
|
-
- **Missing translations**: Any strings still in English or another language
|
|
84
|
-
- **Cultural issues**: Idioms, humor, imagery, or examples that don't
|
|
85
|
-
work in [CULTURE]
|
|
86
|
-
- **Placeholder errors**: Variables like {name} or %s visible to the user
|
|
87
|
-
- **Encoding**: Character display issues (mojibake, missing accents/diacritics)
|
|
88
|
-
|
|
89
|
-
Deliver as a markdown table:
|
|
90
|
-
| Screen/Location | Original (EN) | Current ([LANG]) | Suggested Fix | Category | Severity | Screenshot |
|
|
91
|
-
|
|
92
|
-
Severity levels:
|
|
93
|
-
- **Critical**: Meaning is wrong or offensive
|
|
94
|
-
- **Major**: Sounds clearly unnatural or causes confusion
|
|
95
|
-
- **Minor**: Grammatically correct but a native speaker would phrase differently
|
|
96
|
-
- **Cosmetic**: Truncation or formatting that doesn't affect comprehension
|
|
97
|
-
|
|
98
|
-
Also provide:
|
|
99
|
-
- Overall quality score (1-10) for the localization
|
|
100
|
-
- Top 3 systemic issues (patterns you noticed across multiple strings)
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
**Suggested price:** $15-30 per language, depending on product size. A small app (10-20 screens): $15. A larger product (50+ screens): $25-30.
|
|
104
|
-
|
|
105
|
-
## Expected Deliverables
|
|
106
|
-
|
|
107
|
-
1. Issue table in markdown with all fields filled (screen, original, current, suggested fix, category, severity, screenshot)
|
|
108
|
-
2. Annotated screenshots for every issue, with the problematic text highlighted or circled
|
|
109
|
-
3. Overall quality score with brief justification
|
|
110
|
-
4. Top 3 systemic issues — patterns the agent can use to improve the translation process
|
|
111
|
-
5. Count of total issues by severity (critical/major/minor/cosmetic)
|
|
112
|
-
|
|
113
|
-
## Verification Criteria
|
|
114
|
-
|
|
115
|
-
Before calling `mark_job_paid`:
|
|
116
|
-
|
|
117
|
-
1. **Coverage** — the reviewer should have visited all major screens (check against a screen list if you have one)
|
|
118
|
-
2. **Suggested fixes provided** — every issue should include a suggested correction, not just "this sounds wrong"
|
|
119
|
-
3. **Screenshots present** — each issue should have a corresponding screenshot showing the problem in context
|
|
120
|
-
4. **Severity is reasonable** — spot-check a few issues: cosmetic issues should truly be cosmetic, critical issues should truly be critical
|
|
121
|
-
5. **Systemic patterns identified** — the top-3 list should contain actionable patterns, not individual issues restated
|
|
122
|
-
|
|
123
|
-
## Communication Template
|
|
124
|
-
|
|
125
|
-
**First message after job offer is accepted:**
|
|
126
|
-
|
|
127
|
-
```
|
|
128
|
-
Hi [NAME], thanks for helping with this!
|
|
129
|
-
|
|
130
|
-
Please review [PRODUCT_NAME] in [LANGUAGE] as if you were a regular
|
|
131
|
-
user from [COUNTRY]. Here's how to switch the language:
|
|
132
|
-
[INSTRUCTIONS_TO_SWITCH_LANGUAGE]
|
|
133
|
-
|
|
134
|
-
Test account (if needed):
|
|
135
|
-
- URL: [URL]
|
|
136
|
-
- Username: [USERNAME]
|
|
137
|
-
- Password: [PASSWORD]
|
|
138
|
-
|
|
139
|
-
The key screens to cover:
|
|
140
|
-
1. [SCREEN_1, e.g., "Landing page and signup flow"]
|
|
141
|
-
2. [SCREEN_2, e.g., "Dashboard and settings"]
|
|
142
|
-
3. [SCREEN_3, e.g., "Payment and checkout"]
|
|
143
|
-
... (list all major areas)
|
|
144
|
-
|
|
145
|
-
Focus especially on:
|
|
146
|
-
- [PRIORITY, e.g., "The onboarding flow — we just rewrote it"]
|
|
147
|
-
- [PRIORITY, e.g., "Error messages — these were machine-translated"]
|
|
148
|
-
|
|
149
|
-
For each issue, please suggest how a native speaker would say it.
|
|
150
|
-
Don't just flag problems — give me the fix so I can apply it directly.
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
## Estimated Timeline
|
|
154
|
-
|
|
155
|
-
- **Small app (10-20 screens):** 3-5 hours
|
|
156
|
-
- **Medium app (20-50 screens):** 5-8 hours
|
|
157
|
-
- **Large app (50+ screens):** 8-12 hours (consider splitting into multiple jobs by section)
|
|
158
|
-
- **Turnaround expectation:** 48-72 hours
|
|
159
|
-
|
|
160
|
-
## Recurring Schedule
|
|
161
|
-
|
|
162
|
-
**Cadence:** Per release (for any release containing new or changed user-facing strings)
|
|
163
|
-
|
|
164
|
-
**Per-release workflow:**
|
|
165
|
-
1. When a release includes new strings in supported languages, trigger this playbook
|
|
166
|
-
2. Provide the reviewer with a list of changed screens/areas so they can focus on what's new
|
|
167
|
-
3. Include a regression check: verify that previously reported issues have been fixed
|
|
168
|
-
4. Update your translation memory or glossary based on the reviewer's systemic feedback
|
|
169
|
-
|
|
170
|
-
**Language expansion:**
|
|
171
|
-
When adding a new language:
|
|
172
|
-
1. Run a full review (all screens) for the initial launch
|
|
173
|
-
2. Subsequent releases only need delta reviews (changed screens)
|
|
174
|
-
3. Build a relationship with a reliable reviewer per language for consistency
|
|
175
|
-
|
|
176
|
-
---
|
|
177
|
-
|
|
178
|
-
## Example Agent Workflow
|
|
179
|
-
|
|
180
|
-
```
|
|
181
|
-
1. search_humans({ skill: "translation", available_now: true, limit: 10 })
|
|
182
|
-
— or for a specific language:
|
|
183
|
-
search_humans({ skill: "Spanish", available_now: true, limit: 10 })
|
|
184
|
-
2. For each candidate: get_human_profile({ username: candidate.username })
|
|
185
|
-
3. Confirm native speaker status and locale match
|
|
186
|
-
4. create_job_offer({
|
|
187
|
-
human_username: selected.username,
|
|
188
|
-
title: "Localization review — MyApp in Spanish (Mexico)",
|
|
189
|
-
description: "...[filled template]...",
|
|
190
|
-
price: 20,
|
|
191
|
-
currency: "USD"
|
|
192
|
-
})
|
|
193
|
-
5. send_job_message({ job_id: job.id, message: "...[credentials + screen list]..." })
|
|
194
|
-
6. Poll: get_job_status({ job_id: job.id }) until status is "delivered"
|
|
195
|
-
7. Review issue table against verification criteria
|
|
196
|
-
8. Apply suggested fixes to translation files
|
|
197
|
-
9. mark_job_paid({ job_id: job.id })
|
|
198
|
-
10. leave_review({ job_id: job.id, rating: 5, comment: "..." })
|
|
199
|
-
```
|
package/playbooks/qa-testing.md
DELETED
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
# QA Testing Playbook
|
|
2
|
-
|
|
3
|
-
Hire a human to manually test your product across devices, browsers, and user flows. Humans catch UX issues, visual glitches, and edge cases that automated tests miss.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## When to Use
|
|
8
|
-
|
|
9
|
-
- A new release or feature is ready for deployment
|
|
10
|
-
- A critical bug fix needs regression testing before shipping
|
|
11
|
-
- Users have reported issues you cannot reproduce
|
|
12
|
-
- You need testing on specific devices or browsers you don't have access to
|
|
13
|
-
- Accessibility or usability testing is needed
|
|
14
|
-
|
|
15
|
-
## Why a Human Is Needed
|
|
16
|
-
|
|
17
|
-
Automated tests verify expected behavior. Humans find unexpected behavior: broken layouts on specific screen sizes, confusing UX flows, text truncation, slow interactions that feel wrong, accessibility barriers, and the countless edge cases that no test suite anticipates. A human tester also provides subjective feedback on whether something *feels* right.
|
|
18
|
-
|
|
19
|
-
## Search Criteria
|
|
20
|
-
|
|
21
|
-
**Primary search:**
|
|
22
|
-
```json
|
|
23
|
-
{
|
|
24
|
-
"skill": "qa testing",
|
|
25
|
-
"available_now": true,
|
|
26
|
-
"limit": 10
|
|
27
|
-
}
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
**Fallback search:**
|
|
31
|
-
```json
|
|
32
|
-
{
|
|
33
|
-
"skill": "mobile testing",
|
|
34
|
-
"available_now": true,
|
|
35
|
-
"limit": 10
|
|
36
|
-
}
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
**Second fallback:**
|
|
40
|
-
```json
|
|
41
|
-
{
|
|
42
|
-
"skill": "testing",
|
|
43
|
-
"available_now": true,
|
|
44
|
-
"limit": 10
|
|
45
|
-
}
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Candidate Evaluation
|
|
49
|
-
|
|
50
|
-
Priority criteria when reviewing `get_human_profile` results:
|
|
51
|
-
|
|
52
|
-
1. **QA or testing experience** — look for mentions of bug reporting, test cases, or QA in their profile
|
|
53
|
-
2. **Device diversity** — candidates who mention specific devices (iPhone, Android, tablets) are more valuable
|
|
54
|
-
3. **Communication clarity** — bug reports require clear, precise writing
|
|
55
|
-
4. **Technical awareness** — understands browser dev tools, can capture console errors
|
|
56
|
-
5. **Availability** — testing is time-sensitive around releases; prefer candidates available within 24 hours
|
|
57
|
-
|
|
58
|
-
## Job Offer Template
|
|
59
|
-
|
|
60
|
-
**Title:** QA test [PRODUCT_NAME] — [FEATURE/RELEASE] on [PLATFORM]
|
|
61
|
-
|
|
62
|
-
**Description:**
|
|
63
|
-
```
|
|
64
|
-
Test [PRODUCT_NAME] ([PRODUCT_URL]) focusing on [FEATURE_OR_AREA].
|
|
65
|
-
|
|
66
|
-
Test environment:
|
|
67
|
-
- URL: [STAGING_URL]
|
|
68
|
-
- Test account: [TEST_CREDENTIALS] (will send securely via message)
|
|
69
|
-
- Branch/version: [VERSION]
|
|
70
|
-
|
|
71
|
-
Test cases to cover:
|
|
72
|
-
1. [TEST_CASE_1]
|
|
73
|
-
2. [TEST_CASE_2]
|
|
74
|
-
3. [TEST_CASE_3]
|
|
75
|
-
... (list 5-15 specific flows)
|
|
76
|
-
|
|
77
|
-
For each issue found, report:
|
|
78
|
-
- Steps to reproduce (numbered)
|
|
79
|
-
- Expected behavior
|
|
80
|
-
- Actual behavior
|
|
81
|
-
- Screenshot or screen recording
|
|
82
|
-
- Device, OS, browser, and screen size
|
|
83
|
-
- Severity: critical / major / minor / cosmetic
|
|
84
|
-
- Console errors (if any — open browser dev tools > Console tab)
|
|
85
|
-
|
|
86
|
-
Also note:
|
|
87
|
-
- Any flow that felt confusing or slow (even if technically "working")
|
|
88
|
-
- Suggestions for improvement
|
|
89
|
-
|
|
90
|
-
Deliver as a markdown document or structured table.
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
**Suggested price:** $15-40 per testing session, depending on scope. A focused session (5-10 test cases, single platform) is $15. A comprehensive session (15+ cases, multiple devices) is $30-40.
|
|
94
|
-
|
|
95
|
-
## Expected Deliverables
|
|
96
|
-
|
|
97
|
-
1. Bug report document with all issues found, each containing steps to reproduce, expected vs. actual behavior, and severity
|
|
98
|
-
2. Screenshots or screen recordings for every visual or interaction bug
|
|
99
|
-
3. Device and browser information for each issue
|
|
100
|
-
4. Console error logs where applicable
|
|
101
|
-
5. Summary of flows tested with pass/fail status
|
|
102
|
-
6. Subjective UX feedback — anything that felt off, even if not a "bug"
|
|
103
|
-
|
|
104
|
-
## Verification Criteria
|
|
105
|
-
|
|
106
|
-
Before calling `mark_job_paid`:
|
|
107
|
-
|
|
108
|
-
1. **Reproducibility** — attempt to reproduce at least 2 reported bugs; they should be real
|
|
109
|
-
2. **Completeness** — all requested test cases should be covered (marked pass or fail)
|
|
110
|
-
3. **Detail quality** — each bug report should have clear reproduction steps, not vague descriptions like "it didn't work"
|
|
111
|
-
4. **Screenshots present** — visual bugs must have visual evidence
|
|
112
|
-
5. **No fabrication** — reported issues should correspond to real product behavior, not invented problems to pad the report
|
|
113
|
-
|
|
114
|
-
## Communication Template
|
|
115
|
-
|
|
116
|
-
**First message after job offer is accepted:**
|
|
117
|
-
|
|
118
|
-
```
|
|
119
|
-
Hi [NAME], thanks for picking this up!
|
|
120
|
-
|
|
121
|
-
Here are the test credentials (please don't share these):
|
|
122
|
-
- URL: [STAGING_URL]
|
|
123
|
-
- Username: [USERNAME]
|
|
124
|
-
- Password: [PASSWORD]
|
|
125
|
-
|
|
126
|
-
Please focus on [PRIORITY_AREA] first, then work through the other
|
|
127
|
-
test cases. I'm most concerned about [SPECIFIC_CONCERN].
|
|
128
|
-
|
|
129
|
-
A few notes:
|
|
130
|
-
- Test on [TARGET_DEVICE/BROWSER] if you can
|
|
131
|
-
- If you find a critical bug (app crash, data loss, security issue),
|
|
132
|
-
message me immediately — don't wait for the full report
|
|
133
|
-
- Include your device/browser info with each issue
|
|
134
|
-
- Screenshots are essential for any visual bugs
|
|
135
|
-
|
|
136
|
-
Take your time and be thorough. Let me know if any test case is
|
|
137
|
-
unclear.
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
## Estimated Timeline
|
|
141
|
-
|
|
142
|
-
- **Focused session (5-10 test cases):** 2-4 hours
|
|
143
|
-
- **Comprehensive session (15+ test cases, multiple devices):** 4-8 hours
|
|
144
|
-
- **Turnaround expectation:** 24-48 hours from acceptance
|
|
145
|
-
|
|
146
|
-
## Recurring Schedule
|
|
147
|
-
|
|
148
|
-
**Cadence:** Per release
|
|
149
|
-
|
|
150
|
-
**Per-release workflow:**
|
|
151
|
-
1. When a release is tagged or a staging deployment is ready, trigger this playbook
|
|
152
|
-
2. Create a job with the release-specific test cases
|
|
153
|
-
3. Include regression tests for previously reported bugs (verify they're still fixed)
|
|
154
|
-
4. After verification, update your known-issues list with any new findings
|
|
155
|
-
5. If critical bugs are found, fix and re-test before deploying to production
|
|
156
|
-
|
|
157
|
-
**Recommended testing matrix rotation:**
|
|
158
|
-
- Release 1: Desktop Chrome + Mobile Safari
|
|
159
|
-
- Release 2: Desktop Firefox + Mobile Chrome (Android)
|
|
160
|
-
- Release 3: Desktop Safari + Tablet
|
|
161
|
-
- Rotate to cover all platforms over time
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## Example Agent Workflow
|
|
166
|
-
|
|
167
|
-
```
|
|
168
|
-
1. search_humans({ skill: "qa testing", available_now: true, limit: 10 })
|
|
169
|
-
2. For each candidate: get_human_profile({ username: candidate.username })
|
|
170
|
-
3. Select best candidate based on evaluation criteria
|
|
171
|
-
4. create_job_offer({
|
|
172
|
-
human_username: selected.username,
|
|
173
|
-
title: "QA test MyApp — v2.3 signup flow on mobile",
|
|
174
|
-
description: "...[filled template]...",
|
|
175
|
-
price: 25,
|
|
176
|
-
currency: "USD"
|
|
177
|
-
})
|
|
178
|
-
5. send_job_message({
|
|
179
|
-
job_id: job.id,
|
|
180
|
-
message: "...[credentials + instructions]..."
|
|
181
|
-
})
|
|
182
|
-
6. Poll: get_job_status({ job_id: job.id }) until status is "delivered"
|
|
183
|
-
7. Review bug report against verification criteria
|
|
184
|
-
8. If critical bugs found: file them, fix, create new test job for regression
|
|
185
|
-
9. mark_job_paid({ job_id: job.id })
|
|
186
|
-
10. leave_review({ job_id: job.id, rating: 5, comment: "..." })
|
|
187
|
-
```
|