@event4u/agent-config 2.17.0 → 2.19.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 (32) hide show
  1. package/.agent-src/commands/refine-ticket.md +3 -0
  2. package/.agent-src/personas/README.md +8 -0
  3. package/.agent-src/skills/refine-ticket/SKILL.md +3 -0
  4. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  5. package/.agent-src/user-types/README.md +124 -0
  6. package/.agent-src/user-types/_template/user-type.md +95 -0
  7. package/.agent-src/user-types/galabau-field-crew.md +100 -0
  8. package/.agent-src/user-types/metalworking-shop.md +105 -0
  9. package/.agent-src/user-types/truck-driver.md +113 -0
  10. package/.claude-plugin/marketplace.json +1 -1
  11. package/CHANGELOG.md +68 -0
  12. package/config/agent-settings.template.yml +7 -0
  13. package/docs/catalog.md +1 -1
  14. package/docs/contracts/adr-install-user-type-axis.md +107 -0
  15. package/docs/contracts/adr-mcp-runtime.md +128 -0
  16. package/docs/contracts/adr-user-types-axis.md +127 -0
  17. package/docs/contracts/init-telemetry.md +2 -3
  18. package/docs/contracts/user-type-schema.md +146 -0
  19. package/docs/getting-started-by-role.md +1 -1
  20. package/docs/recruits/_template.md +81 -0
  21. package/package.json +1 -1
  22. package/scripts/audit_user_type_axis.py +140 -0
  23. package/scripts/compress.py +48 -2
  24. package/scripts/install +9 -1
  25. package/scripts/install.py +81 -7
  26. package/scripts/install.sh +7 -0
  27. package/scripts/mcp_server/prompts.py +134 -2
  28. package/scripts/schemas/user-type-axis.schema.json +56 -0
  29. package/scripts/schemas/user-type.schema.json +35 -0
  30. package/scripts/skill_linter.py +139 -4
  31. package/scripts/skill_tools/audit_user_type_coverage.py +148 -0
  32. package/scripts/sync_agent_settings.py +6 -0
@@ -77,6 +77,9 @@ persona voices) plus the close-prompt. Stop there. Do **not** chain into
77
77
  /refine-ticket PROJ-123
78
78
  /refine-ticket # uses current branch
79
79
  /refine-ticket --personas=+qa PROJ-123
80
+ /refine-ticket --user-type=galabau-field-crew PROJ-123
81
+ /refine-ticket --personas=+qa --user-type=truck-driver PROJ-123
82
+ /refine-ticket --user-type=metalworking-shop PROJ-123
80
83
  /refine-ticket --fresh-eyes https://acme.atlassian.net/browse/PROJ-123
81
84
  ```
82
85
 
@@ -5,6 +5,14 @@
5
5
  > expectations. Skills cite personas in a `personas:` frontmatter key.
6
6
  > Users invoke them via `--personas=<id>`.
7
7
 
8
+ > For end-user-of-the-software lenses (galabau field crew, truck
9
+ > driver, metalworking shop), see the parallel
10
+ > [`user-types/`](../user-types/README.md) axis — personas describe
11
+ > **how** we review (methodology), user-types describe **who** we
12
+ > simulate (end user). They compose orthogonally on the CLI:
13
+ > `--personas=qa --user-type=truck-driver`. No existing persona moves
14
+ > to `user-types/`.
15
+
8
16
  ## Why this directory exists
9
17
 
10
18
  Before personas, every multi-lens skill (`adversarial-review`,
@@ -240,6 +240,9 @@ open questions surfaced>
240
240
  - **Critical Challenger** — <one paragraph>
241
241
  - **AI Agent** — <one paragraph>
242
242
  - **[qa]** — *(only when `--personas=+qa`)* <one paragraph>
243
+ - **User: <label>** — *(only when `--user-type=<id>`)* <one paragraph
244
+ citing Daily Workflow / Vocabulary / Operational Constraints /
245
+ Ticket Red Flags from the loaded user-type>
243
246
 
244
247
  ## Orchestration notes
245
248
 
@@ -39,7 +39,7 @@ schema_version: 1
39
39
  # CI guard: a release bump of `package.json` must update this value
40
40
  # in lockstep — see scripts/check_template_pin_drift.py (road-to-
41
41
  # portable-runtime-and-update-check P3.3).
42
- agent_config_version: "2.16.0"
42
+ agent_config_version: "2.18.0"
43
43
 
44
44
  # --- Project identity ---
45
45
  project:
@@ -0,0 +1,124 @@
1
+ # User-types
2
+
3
+ > Reusable **end-user simulation lenses** as a first-class primitive,
4
+ > parallel to `personas/`. A user-type declares a *who*: a real
5
+ > end-user of the software under review (a galabau field crew, a
6
+ > truck driver, a metalworking shop). Skills consume them via
7
+ > `--user-type=<id>` on the CLI.
8
+
9
+ ## Why this directory exists
10
+
11
+ `personas/` answered one question well: *how* we review (qa,
12
+ senior-engineer, critical-challenger, product-owner). It collapsed
13
+ when "personas" like `galabau-field-crew` or `truck-driver` started
14
+ landing — those are not review methodologies, they are the end-user
15
+ viewpoint a methodology reviewer should adopt while reviewing.
16
+
17
+ The two axes compose orthogonally:
18
+
19
+ ```
20
+ /refine-ticket --personas=qa --user-type=truck-driver PROJ-123
21
+ ```
22
+
23
+ QA methodology applied through a truck-driver end-user lens. The
24
+ split is locked in [`../../docs/contracts/adr-user-types-axis.md`](../../docs/contracts/adr-user-types-axis.md).
25
+
26
+ ## What a user-type is — and is NOT
27
+
28
+ - **Is**: a small Markdown file declaring an end-user simulation —
29
+ workflow, vocabulary, operational constraints, the questions only
30
+ this viewpoint would ask.
31
+ - **Is NOT**: a persona. Personas describe review methodology, never
32
+ an end-user viewpoint.
33
+ - **Is NOT**: an operational manual. User-types are review lenses
34
+ only — they flag ticket gaps, they never instruct a trade. No
35
+ welding procedures, no electrical work, no structural advice, no
36
+ dangerous how-to. The Anti-Patterns section in every file
37
+ encodes this floor.
38
+ - **Is NOT**: an install-time filter. The vocabulary overlaps with
39
+ the install-time `user-types/` axis at the package root (see
40
+ [`../../docs/contracts/adr-install-user-type-axis.md`](../../docs/contracts/adr-install-user-type-axis.md)),
41
+ but the two live in different directories and consume different
42
+ config keys. Same word, different layer — by design.
43
+
44
+ ## Schema
45
+
46
+ Locked in [`../../docs/contracts/user-type-schema.md`](../../docs/contracts/user-type-schema.md).
47
+
48
+ - **Spine** — 7 sections (Focus · Daily Workflow · Vocabulary ·
49
+ Operational Constraints · Unique Questions · Ticket Red Flags ·
50
+ Anti-Patterns), ≤ 120 lines.
51
+ - **Frontmatter** — `id · kind: user-type · description · version · source`.
52
+
53
+ Run `task lint-skills` to enforce the schema, the size budget, and
54
+ the Anti-Generic Quality Bar.
55
+
56
+ ## Anti-Generic Quality Bar (merge gate)
57
+
58
+ Every user-type encodes **≥ 5 concrete, domain-specific review
59
+ points** across `Daily Workflow`, `Vocabulary`, `Operational
60
+ Constraints`, and `Ticket Red Flags`. Generic prose is REJECTED:
61
+
62
+ - ❌ "consider mobile usability" → ✅ "capacitive touch fails with
63
+ wet leather gloves at 4 °C; tap targets ≥ 60 px or voice command"
64
+ - ❌ "think about offline" → ✅ "no signal in cellar yards; queue
65
+ changes locally, conflict-resolve on the morning brief"
66
+
67
+ Reviewer test: a generic reviewer persona could not have produced
68
+ the `Unique Questions` or `Ticket Red Flags` of this file. If they
69
+ could, the file is generic and must be rewritten.
70
+
71
+ ## Guardrails (encoded in every Anti-Patterns block)
72
+
73
+ User-types are review lenses, not operational manuals. Every file's
74
+ `## Anti-Patterns` section MUST explicitly forbid:
75
+
76
+ - Trade-execution instructions (welding procedure, electrical work,
77
+ structural advice, anything that could harm if followed)
78
+ - Dangerous how-to (chemical handling, equipment operation,
79
+ work-at-height procedures)
80
+ - Medical / legal / engineering advice requiring a licensed
81
+ practitioner
82
+
83
+ Allowed: workflow realism, ticket gap analysis, terminology
84
+ correction, mobile / offline / safety / approval signals as
85
+ ticket-requirement signals.
86
+
87
+ ## How skills use user-types
88
+
89
+ CLI-only in v1 — skills do NOT declare a default `user-types:`
90
+ frontmatter key. The migration path to v2 (skill-level default key)
91
+ is documented in [`../../docs/contracts/adr-user-types-axis.md § Consequences`](../../docs/contracts/adr-user-types-axis.md).
92
+
93
+ ```
94
+ /refine-ticket --user-type=truck-driver PROJ-123
95
+ ```
96
+
97
+ If `--user-type=` is omitted, no end-user lens applies — persona
98
+ review proceeds without simulation.
99
+
100
+ ## Authoring rules
101
+
102
+ - Every user-type is drafted via the `artifact-drafting-protocol` rule.
103
+ - Every user-type must pass the Anti-Generic Quality Bar (≥ 5
104
+ concrete review points, ≥ 3 Unique Questions falsifiable against a
105
+ ticket).
106
+ - Project-specific user-types live in the consumer repo
107
+ (`.agent-src/user-types/` overrides), never in this package — the
108
+ three seeds shipped here are illustrative reference content.
109
+ - Template: [`./_template/user-type.md`](./_template/user-type.md) (7 sections, ≤ 120 lines).
110
+
111
+ ## No-move policy
112
+
113
+ No existing persona moves into this directory. The three seeds
114
+ shipped here (`galabau-field-crew`, `metalworking-shop`,
115
+ `truck-driver`) were born as user-types. Existing personas stay as
116
+ personas. See [`../../docs/contracts/adr-user-types-axis.md § Migration`](../../docs/contracts/adr-user-types-axis.md).
117
+
118
+ ## Related
119
+
120
+ - [`../../docs/contracts/user-type-schema.md`](../../docs/contracts/user-type-schema.md) — locked schema
121
+ - [`../../docs/contracts/adr-user-types-axis.md`](../../docs/contracts/adr-user-types-axis.md) — the axis split decision
122
+ - [`../../docs/contracts/adr-install-user-type-axis.md`](../../docs/contracts/adr-install-user-type-axis.md) — install-time `user_type` axis (distinct layer)
123
+ - [`../personas/README.md`](../personas/README.md) — sister axis (methodology vs end-user)
124
+ - [`../rules/artifact-drafting-protocol.md`](../rules/artifact-drafting-protocol.md) — mandatory per new user-type
@@ -0,0 +1,95 @@
1
+ ---
2
+ id: {user-type-id}
3
+ kind: user-type
4
+ description: "One sentence — who this lens simulates and the operational reality they bring; ≤ 160 chars."
5
+ version: "1.0"
6
+ source: project
7
+ ---
8
+
9
+ # {Human-readable user-type name}
10
+
11
+ ## Focus
12
+
13
+ One paragraph. Who this lens is, the operational context they work
14
+ in (site, shop, vehicle, office), and what no persona catches.
15
+ State the workflow shape and the time pressure that frames every
16
+ decision they make.
17
+
18
+ End with one sentence pinning the boundary: this lens is a **review
19
+ lens only**, never an operational instruction source. No trade
20
+ execution. No dangerous how-to.
21
+
22
+ ## Daily Workflow
23
+
24
+ Concrete day-shape. What happens at 06:00, 10:00, 15:00. Who they
25
+ talk to, what they touch, what they wait for. Avoid generic prose
26
+ ("they manage tasks"). Encode the actual rhythm.
27
+
28
+ - {Morning routine — concrete trigger, tool, deliverable.}
29
+ - {Mid-day workflow — concrete trigger, tool, deliverable.}
30
+ - {End-of-day proof / close-out — concrete artefact + verification step.}
31
+
32
+ ## Vocabulary
33
+
34
+ Domain terms the software must use (or must NOT substitute).
35
+ Bilingual where the trade is bilingual. Plain-language over
36
+ engineer-language where the user is non-technical.
37
+
38
+ - {Term 1 — what it means, why the substitution fails.}
39
+ - {Term 2.}
40
+ - {Term 3.}
41
+
42
+ ## Operational Constraints
43
+
44
+ Each constraint is a UI / flow signal, not generic empathy.
45
+
46
+ - {Mobile / offline / connectivity / dead-zone constraint.}
47
+ - {PPE / gloves / noise / lighting / weather constraint.}
48
+ - {Time-pressure / hours-of-service / break-window constraint.}
49
+ - {Hardware constraint — device, screen size, input mode.}
50
+ - {Optional: legal / safety / certification constraint.}
51
+
52
+ ## Unique Questions
53
+
54
+ Three or more questions no persona asks verbatim. Each must be
55
+ falsifiable against the ticket under review.
56
+
57
+ - {Question 1 — direct, scoped, answerable from the ticket.}
58
+ - {Question 2.}
59
+ - {Question 3.}
60
+ - {Optional Question 4.}
61
+
62
+ ## Ticket Red Flags
63
+
64
+ What this lens flags as missing or unrealistic when reviewing a
65
+ ticket. Bullet list — each item names a concrete signal a generic
66
+ reviewer would miss.
67
+
68
+ - {Red flag 1 — concrete signal + why it matters in this domain.}
69
+ - {Red flag 2.}
70
+ - {Red flag 3.}
71
+
72
+ ## Anti-Patterns
73
+
74
+ Non-negotiable. Guardrails are encoded here.
75
+
76
+ - **Review-only, never operational.** No trade execution
77
+ instructions (welding procedure, electrical work, structural
78
+ advice). No dangerous how-to. No medical / legal / engineering
79
+ advice that requires a licensed practitioner.
80
+ - **No generic prose.** "Consider usability" / "think about offline"
81
+ fails the Anti-Generic Quality Bar — every observation cites a
82
+ concrete signal.
83
+ - {Anti-pattern 3 — domain-specific failure mode this lens refuses to validate.}
84
+ - {Anti-pattern 4 — optional.}
85
+
86
+ ---
87
+
88
+ *Author note (delete before publishing): this template targets the
89
+ 7-section spine locked in
90
+ [`docs/contracts/user-type-schema.md`](../../../docs/contracts/user-type-schema.md).
91
+ Stay within the **≤ 120 line** budget (file total, including
92
+ frontmatter). Replace every `{placeholder}` with concrete content
93
+ that passes the Anti-Generic Quality Bar (≥ 5 concrete review
94
+ points; ≥ 3 Unique Questions). Run `task lint-skills` before
95
+ commit.*
@@ -0,0 +1,100 @@
1
+ ---
2
+ id: galabau-field-crew
3
+ kind: user-type
4
+ description: "Landscape-build crew on site — gloves, mud, no-signal, billable-photo proofs, bilingual plain-German vocabulary."
5
+ version: "1.0"
6
+ source: project
7
+ ---
8
+
9
+ # Galabau Field Crew
10
+
11
+ ## Focus
12
+
13
+ Two- to four-person crew on a landscape / garden-build site —
14
+ paver-laying, retaining walls, planting, irrigation. Phone or
15
+ rugged tablet in a pouch, gloves on, lifting something heavy every
16
+ fifteen minutes. Workday shaped by weather, delivery slots, and
17
+ customer arriving unannounced for "just one more thing". No
18
+ reliable signal on half the sites. Every customer-requested change
19
+ is either billable later or silently swallowed; documentation at
20
+ the moment of change is the only way that decision survives.
21
+
22
+ Review lens only, never operational instruction source. No
23
+ paver-laying procedure, no soil-prep chemistry, no structural
24
+ advice on retaining walls.
25
+
26
+ ## Daily Workflow
27
+
28
+ - 06:30 — depot pickup, materials loaded, route confirmed; lead
29
+ reads day plan once, on phone, gloves off.
30
+ - 07:30–11:30 — execution on site; phone back in pouch. UI reads
31
+ happen at coffee breaks or when customer interrupts.
32
+ - 11:30 — billable-change moment: customer asks for an extra step,
33
+ crew lead captures it as timestamped photo + short note +
34
+ ideally signature, **before** next task starts.
35
+ - 15:30 — end-of-day proof: photo of finished section, geotagged,
36
+ uploaded if signal exists, queued offline if not.
37
+ - 17:00 — depot return; office reconciles day from photos +
38
+ notes, not from memory.
39
+
40
+ ## Vocabulary
41
+
42
+ - **Aufmass** — measured-on-site quantity that becomes invoice
43
+ basis; never substitute with "estimate" or "measurement".
44
+ - **Nachtrag** — billable change-request added to a running job;
45
+ losing one = losing money, not just data.
46
+ - **Sauberkeitsschicht** — gravel layer under pavers; plain-German,
47
+ not "base course".
48
+ - **Plain-German over engineer-German.** Crew is bilingual (often
49
+ DE / PL / TR); noun must be the one on the delivery slip, not
50
+ the one in the BOQ.
51
+
52
+ ## Operational Constraints
53
+
54
+ - **No signal on half the sites.** Every write must queue and sync;
55
+ every read must work from cache. Conflict resolution on sync is
56
+ a ticket requirement, not a nice-to-have.
57
+ - **Capacitive touch fails with wet or dirty gloves.** Primary
58
+ flows survive with stylus, knuckle, or large-target taps. No
59
+ pinch-zoom on the critical path.
60
+ - **Photo is the proof, not the form.** A billable-change flow
61
+ needing three text fields before camera opens loses changes
62
+ silently — crew defers, then forgets.
63
+ - **Screen washout in direct sun.** High-contrast mode on by
64
+ default for outdoor flows, never opt-in via settings.
65
+ - **Rugged hardware, slow CPU.** Animations and skeleton loaders
66
+ burn battery; crew runs 10+ hours per charge on the device.
67
+
68
+ ## Unique Questions
69
+
70
+ - Does this flow survive a 4-hour offline window plus a sync with
71
+ conflicting edits from the office?
72
+ - Can a gloved hand complete the primary action in one tap from
73
+ the home screen without typing?
74
+ - Is there a photo-first path for capturing a billable change, or
75
+ does the form block the camera?
76
+ - Is the noun on screen the one written on the delivery slip, in
77
+ the language the crew actually uses?
78
+
79
+ ## Ticket Red Flags
80
+
81
+ - "User enters …" without specifying input mode — gloves rule out
82
+ the keyboard on the critical path.
83
+ - Sync described as "auto" with no conflict-resolution UI sketched.
84
+ - High-contrast / outdoor visibility treated as a settings toggle
85
+ rather than the default for outdoor flows.
86
+ - No mention of what happens when the customer signature step is
87
+ refused or skipped.
88
+
89
+ ## Anti-Patterns
90
+
91
+ - **Review-only, never operational.** No paver-laying procedure,
92
+ soil chemistry, structural retaining-wall advice, or anything a
93
+ licensed Galabauer must sign off.
94
+ - **No generic prose.** "Consider offline support" fails the
95
+ Anti-Generic Quality Bar — every observation cites a concrete
96
+ signal (gloves, signal-loss, Nachtrag, Aufmass).
97
+ - **No engineer-vocabulary substitution.** Renaming Nachtrag to
98
+ "change request" in the UI breaks the billing chain.
99
+ - **No photo-after-form flows.** Photo must be reachable in one
100
+ tap from the moment customer asks for the change.
@@ -0,0 +1,105 @@
1
+ ---
2
+ id: metalworking-shop
3
+ kind: user-type
4
+ description: "Shop-floor metalworking team — job travelers, material certs, machine-time gates, PPE/noise constraints on UI."
5
+ version: "1.0"
6
+ source: project
7
+ ---
8
+
9
+ # Metalworking Shop
10
+
11
+ ## Focus
12
+
13
+ Small-to-mid metalworking shop — laser-cut, press-brake, weld,
14
+ finish. Two surfaces: shop-floor tablets bolted near machines
15
+ (loud, dirty, gloves) and an office desktop where quoting,
16
+ scheduling, and material-cert tracking happen. Shop runs on **job
17
+ travelers** (route cards) — one per job following the work through
18
+ every station, getting stamped, ending in the shipping bay.
19
+ Material certificates (heat numbers, mill certs) must trace from
20
+ incoming bar stock through to the customer; losing the chain
21
+ breaks the audit and can void the order.
22
+
23
+ Review lens only, never operational instruction source. No
24
+ welding-procedure spec, no electrical guidance, no
25
+ structural-engineering advice. Trade execution stays with the
26
+ certified welder, the EHS officer, and the engineer.
27
+
28
+ ## Daily Workflow
29
+
30
+ - 06:00 — shift starts, lead reviews day's travelers at office
31
+ desktop; priority shifts printed and pinned at the station.
32
+ - 07:00–15:30 — execution per station; each station scans the
33
+ traveler QR or punches job number on tablet to start / pause /
34
+ complete time on that step.
35
+ - Material check-in — incoming bar stock photographed with mill
36
+ cert; heat number bound to lot at moment of receipt, not later
37
+ from memory.
38
+ - Safety sign-off — process steps requiring PPE or second-person
39
+ check (overhead crane, confined-space weld) cannot start until
40
+ sign-off is recorded on the tablet.
41
+ - 15:30 — end-of-shift, lead reconciles open travelers, flags any
42
+ step where the material-cert chain is broken.
43
+
44
+ ## Vocabulary
45
+
46
+ - **Job traveler / route card** — single canonical record that
47
+ moves with the part; never substitute with "ticket" or "task".
48
+ - **Heat number / mill cert** — material identity; lose the link
49
+ and the part is unsellable to a regulated customer.
50
+ - **Sign-off** — recorded, named, timestamped; "approved" without
51
+ a name fails audit.
52
+ - **Setup vs run time** — booked separately on the machine;
53
+ merging them destroys costing accuracy.
54
+
55
+ ## Operational Constraints
56
+
57
+ - **Shop-floor tablet bolted at the station.** Two-arm reach,
58
+ gloves on, noise > 85 dB → no voice input, large tap targets,
59
+ high contrast on by default.
60
+ - **PPE prevents fine touch.** Welding gloves + safety glasses;
61
+ drop-down pickers with > 6 options are a fail mode.
62
+ - **Machine-time is money.** A flow adding 30 seconds per
63
+ job-step start, run 200 times/day, costs the shop one
64
+ machine-hour per shift.
65
+ - **Material-cert chain is regulatory.** Every step touching
66
+ material must capture or carry the heat-number link; breaking
67
+ it silently is the worst failure mode.
68
+ - **Two-surface split.** Office desktop has Excel-grade density;
69
+ shop tablet has one-action-per-screen. Same flow cannot share
70
+ a layout.
71
+
72
+ ## Unique Questions
73
+
74
+ - Does this flow carry the heat-number / material-cert link from
75
+ receipt to ship, with no manual re-entry step that can drop it?
76
+ - Can a gloved welder complete the station start / pause / end in
77
+ one tap each, without picking from a long drop-down?
78
+ - Is the safety-sign-off step a hard prerequisite enforced by the
79
+ system, or a soft reminder a tired operator can dismiss?
80
+ - Does the layout adapt between bolted-tablet (shop) and desktop
81
+ (office), or is one surface compromised to match the other?
82
+
83
+ ## Ticket Red Flags
84
+
85
+ - "User selects job from dropdown" — long list, gloves, no QR
86
+ alternative.
87
+ - Material-cert mentioned only at receipt, not propagated through
88
+ the route.
89
+ - Setup time and run time collapsed into a single "time on job"
90
+ field.
91
+ - Safety sign-off treated as optional metadata rather than a gate.
92
+ - One layout described for both surfaces without saying which.
93
+
94
+ ## Anti-Patterns
95
+
96
+ - **Review-only, never operational.** No welding procedure (WPS),
97
+ no electrical work, no PPE selection guidance, no structural or
98
+ fatigue-engineering advice — those require certified humans.
99
+ - **No generic prose.** "Consider shop-floor usability" fails the
100
+ Anti-Generic Quality Bar — every observation cites traveler,
101
+ heat number, sign-off, machine-time, or PPE.
102
+ - **No collapsing setup-and-run time.** Costing depends on the
103
+ split; merging it for "UI simplicity" destroys the model.
104
+ - **No silent loss of material-cert link.** A flow that lets the
105
+ chain break without an audit signal is rejected.
@@ -0,0 +1,113 @@
1
+ ---
2
+ id: truck-driver
3
+ kind: user-type
4
+ description: "Commercial truck driver — voice-first, hours-of-service gated, dead-zone tolerant, photo+GPS proof-of-delivery."
5
+ version: "1.0"
6
+ source: project
7
+ ---
8
+
9
+ # Truck Driver
10
+
11
+ ## Focus
12
+
13
+ Commercial truck driver doing regional or long-haul delivery —
14
+ typically single driver, phone or in-cab tablet on a mount, gloves
15
+ optional but hands often busy with the wheel, paperwork, or a
16
+ pallet jack. Day is gated by **hours-of-service (HOS)** — legally
17
+ bounded driving and rest windows that cannot be ignored without
18
+ losing the licence. Cargo moves through warehouses, loading docks,
19
+ customer yards; signal drops in tunnels, basements, rural
20
+ stretches. Proof-of-delivery (photo + signature + GPS + timestamp)
21
+ is the moment the invoice becomes collectable.
22
+
23
+ Review lens only, never operational instruction source. No driving
24
+ advice, no HOS legal interpretation, no vehicle-maintenance
25
+ guidance, no hazmat procedure. Trade execution stays with the
26
+ dispatcher, the safety officer, and the certified driver-trainer.
27
+
28
+ ## Daily Workflow
29
+
30
+ - 05:00 — pre-trip inspection, vehicle check captured on tablet;
31
+ driver swipes into HOS clock at start of duty.
32
+ - 06:00 — first loading-dock arrival; wait time on the dock can be
33
+ 15 minutes or 3 hours; status (waiting / loading / loaded)
34
+ matters for billing and HOS attribution.
35
+ - 07:30 — driving: device must not require typing or precise taps
36
+ while in motion; voice input or large single-tap actions only.
37
+ - Multiple stops — route may reorder mid-day (cancelled stop, new
38
+ rush stop); ETA must recalc and propagate to the customer
39
+ without driver intervention beyond confirming.
40
+ - Per delivery — photo of the pallet, customer signature
41
+ on-screen, GPS pin, timestamp; the four-tuple is the invoice
42
+ trigger.
43
+ - End of duty — HOS clock closes; if next break-window starts
44
+ mid-route, system warns **before** the driver commits.
45
+
46
+ ## Vocabulary
47
+
48
+ - **HOS (hours-of-service)** — legally enforced driving / rest
49
+ windows; not "shift hours" or "working time".
50
+ - **POD (proof-of-delivery)** — the photo + signature + GPS +
51
+ timestamp four-tuple; missing one element = unbilled delivery.
52
+ - **Dock dwell / detention** — wait time at a dock, often billable
53
+ to the shipper; capturing the timestamps is the negotiation
54
+ evidence.
55
+ - **Bill of lading (BOL)** — paper or electronic; the legal cargo
56
+ manifest, not a "shipment summary".
57
+
58
+ ## Operational Constraints
59
+
60
+ - **Driving-while-using is prohibited.** No typing flow on the
61
+ critical path while in motion; voice or large single-tap only.
62
+ Anything else risks the licence and the company.
63
+ - **HOS is hard law.** A UI that lets the driver accept a stop
64
+ that would breach the remaining break-window is rejected — the
65
+ system warns first, dispatcher reroutes.
66
+ - **Dead zones are routine.** Tunnels, basements, rural roads;
67
+ every write queues, every read works from cache, and POD
68
+ uploads sync with photo intact when signal returns.
69
+ - **One-handed operation.** Other hand on the wheel, paperwork,
70
+ or pallet jack; bottom-thumb-reachable primary actions, no
71
+ precision drag.
72
+ - **Cold / wet / glare.** Outdoor docks in winter; gloves on,
73
+ screen wet, sun directly on the display — same outdoor-default
74
+ high-contrast as the field-crew lens.
75
+
76
+ ## Unique Questions
77
+
78
+ - Does the primary flow work hands-busy at a loading dock, with
79
+ voice or one large tap, and not collapse if the connection
80
+ drops mid-step?
81
+ - Does the POD step capture photo + signature + GPS + timestamp
82
+ in a single offline-resilient action, or are they four separate
83
+ forms that can each drop?
84
+ - Does the system block or warn before the driver accepts a stop
85
+ that would breach the remaining HOS break-window?
86
+ - Is dock-dwell time captured automatically from arrival to
87
+ loaded, or does it rely on the driver remembering to tap?
88
+
89
+ ## Ticket Red Flags
90
+
91
+ - "Driver enters …" with text input on the in-motion path.
92
+ - POD described as a single field rather than a four-element
93
+ bundle (photo + signature + GPS + timestamp).
94
+ - HOS treated as informational ("show remaining hours") rather
95
+ than a constraint on what stops can be accepted.
96
+ - Sync described as online-only; no queue + retry sketched for
97
+ dead-zone delivery.
98
+ - Dock-dwell capture left to manual tap with no arrival-trigger
99
+ fallback.
100
+
101
+ ## Anti-Patterns
102
+
103
+ - **Review-only, never operational.** No driving advice, no HOS
104
+ legal interpretation, no vehicle-maintenance procedure, no
105
+ hazmat-handling guidance. Those need certified humans.
106
+ - **No generic prose.** "Consider mobile usability" fails the
107
+ Anti-Generic Quality Bar — every observation cites HOS, POD,
108
+ dock-dwell, dead-zone, or hands-busy.
109
+ - **No in-motion typing on the critical path.** A flow needing
110
+ the driver to type while driving is rejected outright.
111
+ - **No partial POD acceptance.** Missing any element of the
112
+ four-tuple = unbilled; the flow must hold the action open
113
+ until all four are captured or explicitly waived by dispatch.
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Shared agent configuration \u2014 skills for AI coding tools (Claude Code, Augment, Cursor, Cline, Windsurf, Gemini CLI).",
9
- "version": "2.17.0",
9
+ "version": "2.19.0",
10
10
  "keywords": [
11
11
  "agent-config",
12
12
  "skills",
package/CHANGELOG.md CHANGED
@@ -702,6 +702,74 @@ our recommendation order, not its support status.
702
702
  > that forces a new era split (`# Era: 2.16.x`, etc.) — see
703
703
  > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
704
704
 
705
+ ## [2.19.0](https://github.com/event4u-app/agent-config/compare/2.18.0...2.19.0) (2026-05-16)
706
+
707
+ ### Features
708
+
709
+ * **user-types:** land three seed user-types (galabau, metalworking, truck) ([361745e](https://github.com/event4u-app/agent-config/commit/361745ec88d32c7f6faa8f50ac4d350f95f6b6d1))
710
+ * **refine-ticket:** add --user-type lens, orthogonal to --personas ([7d70138](https://github.com/event4u-app/agent-config/commit/7d7013840d92d53ead0b8dba15bf6613398dcd5b))
711
+ * **linter:** add user-type artifact-type support ([bce874c](https://github.com/event4u-app/agent-config/commit/bce874cdb7e925585b74b478b0f4f0e4a7f40380))
712
+ * **user-types:** wire compile pipeline + author scaffolding ([8637dae](https://github.com/event4u-app/agent-config/commit/8637dae4463796726b0d7e737d37169334a0283b))
713
+ * **user-types:** lock schema + ADR for runtime user-type axis ([0ce1549](https://github.com/event4u-app/agent-config/commit/0ce1549a1e5037521cb06e9d1c467fa4ebf87d06))
714
+ * **eval-findings:** add schema template for step-13 closure evidence ([2b2daa4](https://github.com/event4u-app/agent-config/commit/2b2daa46fbf348f5a2901b185c91901de06a1025))
715
+ * **recruits:** add intake template for step-13 P1 recruit walkthroughs ([a569071](https://github.com/event4u-app/agent-config/commit/a569071853d665ca57813fc4c4676bba38716fac))
716
+
717
+ ### Bug Fixes
718
+
719
+ * **adr:** drop transient roadmap links from user-types axis ADR ([e8d30fe](https://github.com/event4u-app/agent-config/commit/e8d30fe80c2d0b87406571b2c3dbbdd031312998))
720
+ * **contracts:** clamp user-type beta-review markers to 90-day window ([25af8cc](https://github.com/event4u-app/agent-config/commit/25af8ccd650d6ea304f5060ebb55c2d034d746a2))
721
+ * **refine-ticket:** sync compressed SKILL.md with --user-type persona-voice bullet ([14b9dcd](https://github.com/event4u-app/agent-config/commit/14b9dcdab69f063e1dcfc8d9070892b4d56305b1))
722
+ * **refs:** inline AI Council Phase 4 convergence summary ([0e6a578](https://github.com/event4u-app/agent-config/commit/0e6a5780773fbabba6f98a01bd4b25726c996903))
723
+ * **adr:** drop transient roadmap links from MCP runtime ADR ([8f2691e](https://github.com/event4u-app/agent-config/commit/8f2691e90130a9333bd9e01d0863ecb0c9f7ec97))
724
+ * **template:** bump agent_config_version pin to 2.18.0 ([dd7441d](https://github.com/event4u-app/agent-config/commit/dd7441d2fc0fd785a70272b6520eb0eb29a61a66))
725
+
726
+ ### Documentation
727
+
728
+ * **user-types:** cross-link personas↔user-types and surface metalworking-shop example ([ac0b0ce](https://github.com/event4u-app/agent-config/commit/ac0b0ce2e356654352d3c4caf1528b3d5772047c))
729
+ * **step-13:** link new recruit + eval-finding templates from prerequisites ([57b729a](https://github.com/event4u-app/agent-config/commit/57b729a236bf1b442df140fb2efbdecd9e73ffd9))
730
+ * **adr:** record MCP server runtime as Anthropic Python SDK ([5f5d689](https://github.com/event4u-app/agent-config/commit/5f5d6895d4369b313e1a5058eca21807e5566cfd))
731
+
732
+ ### Tests
733
+
734
+ * **user-types:** add coverage audit script + tests ([ca403bb](https://github.com/event4u-app/agent-config/commit/ca403bb714fd505f539715fe25b7948714d0ee66))
735
+ * **user-types:** lock schema, lint, and composition contracts ([cfeb48a](https://github.com/event4u-app/agent-config/commit/cfeb48a9d04956ff9d6744383b44bcabeaa57702))
736
+
737
+ ### Chores
738
+
739
+ * **roadmap:** close step-6 user-types axis and refresh progress dashboard ([2f50a96](https://github.com/event4u-app/agent-config/commit/2f50a96eeec1ea1bf832ed560553d4e940a94812))
740
+ * **roadmap:** close step-14 phases 1+2 against shipped MCP server ([2dcf04b](https://github.com/event4u-app/agent-config/commit/2dcf04bdf5f71bd546b7ec9cf27bbbb7fc6d0ec4))
741
+
742
+ Tests: 4493 (+17 since 2.18.0)
743
+
744
+ ## [2.18.0](https://github.com/event4u-app/agent-config/compare/2.17.0...2.18.0) (2026-05-16)
745
+
746
+ ### Features
747
+
748
+ * **lint:** user-type axis frontmatter audit + task wiring ([322bf1d](https://github.com/event4u-app/agent-config/commit/322bf1dc805550cb8c234808bde4235aaf0ba39e))
749
+ * **mcp:** filter skill prompts by personal.user_type ([0b09911](https://github.com/event4u-app/agent-config/commit/0b09911ea6ed2870b12b52ee67a922c3df1f919c))
750
+ * **install:** wire --user-type flag across install entrypoints ([6589c6b](https://github.com/event4u-app/agent-config/commit/6589c6bce4682d521c12727adc4903e7333a421d))
751
+ * **install:** add user_type schema + template placeholder + ADR ([3ede84d](https://github.com/event4u-app/agent-config/commit/3ede84d79ce0d3612ae6d2a862ae239cb01f8762))
752
+
753
+ ### Documentation
754
+
755
+ * **roadmaps:** close step-9 user-types axis + flip parent step-12 ([f1926dc](https://github.com/event4u-app/agent-config/commit/f1926dc6905128bfcb909dc03e47a37c7754e4e3))
756
+
757
+ ### Tests
758
+
759
+ * **install:** cover --user-type + sync user_type preservation ([349478f](https://github.com/event4u-app/agent-config/commit/349478fccc608a2a9818585f7c2a43368ee076c0))
760
+
761
+ ### Chores
762
+
763
+ * **docs:** drop broken step-12 link from getting-started-by-role ([351505a](https://github.com/event4u-app/agent-config/commit/351505a8fbc6626db5dd26cea494d2a4dbaead89))
764
+ * **contracts:** inline council verdict + pragma roadmap source-trails ([4442030](https://github.com/event4u-app/agent-config/commit/4442030543b02511ced3643d9c6062e0722448d9))
765
+ * **contracts:** drop transient roadmap refs from stable artifacts ([ecad21e](https://github.com/event4u-app/agent-config/commit/ecad21e16b7269257ba95d104b2dce06a9f140a5))
766
+ * **contracts:** align keep-beta-until with 90-day window cap ([5c87588](https://github.com/event4u-app/agent-config/commit/5c8758854d19f5790b21bba41c4631e8460caa5e))
767
+ * **roadmaps:** retag step-13/14 complexity to lightweight ([e87cd35](https://github.com/event4u-app/agent-config/commit/e87cd35483cb16eb39574a10318c2f9cb720e9a7))
768
+ * **template:** bump agent_config_version pin to 2.17.0 ([f6bb24e](https://github.com/event4u-app/agent-config/commit/f6bb24e1267623bd49dffd1deb0c9ae071ea4906))
769
+ * **index:** regenerate index after upstream privacy-review desc edit ([fd7fe24](https://github.com/event4u-app/agent-config/commit/fd7fe248b2297021912ec41aff5dd5b1596c9989))
770
+
771
+ Tests: 4476 (+17 since 2.17.0)
772
+
705
773
  ## [2.17.0](https://github.com/event4u-app/agent-config/compare/2.16.0...2.17.0) (2026-05-15)
706
774
 
707
775
  ### Features